私は 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();
?>
ありがとう :)