0
我對PHP比較陌生,我試圖編寫一個腳本來記錄來自try/catch塊的錯誤。我遇到了一個範圍問題,試圖這樣做。能否在類中調用實例的方法而不重新創建類的範圍內的實例?
首先,我試圖讓類實例成爲一個全局變量,但沒有奏效。
我知道每次'AnotherClass'被調用時都可以創建一個新的實例;然而,這將清除'errorhandler'中的'$ errors'數組。
我一直在這個問題上困了幾個小時,任何幫助將不勝感激!
<?php
class errorhandler
{
private $errors = [];
function log($e = '')
{
print "Opps! An error occured: " . $e;
array_push($this->errors, $e);
}
}
# global $errorhandler; # Doesn't work...
$errorhandler = new errorhandler();
class AnotherClass
{
function __construct()
{
try {
$not_possible = 1/0;
} catch (Exception $e) {
$errorhandler->log($e); # Doesn't work
}
}
}
new AnotherClass();
?>
謝謝:)
Ohhhh !!!!太簡單了!謝謝!!! – Patrick
但不這樣做。通過構造函數或其他方法將錯誤處理程序注入類。此外,在這個特定的例子中,你應該使用[set_error_handler](http://php.net/manual/en/function.set-error-handler.php) – prodigitalson
好的!不會想到這一點,但這個想法是有道理的 – Patrick