私は解決策を見つけました。
上記のソースは、ブラウザに直接ロードされた index.php ファイルの内容全体です。確かにもっと多くのコードがありますが、上記のコードは完全にグローバル スコープにあります。また、他のコードはグローバル スコープで実行されないため、Core をオーバーライドできませんでした。
コア オブジェクト コンストラクターはアプリケーションの実行を開始し、他のメソッドを呼び出したり、クラスを自動ロードしたり、クラスを使用したりする他のコア メソッドを呼び出します。 、Core オブジェクトは、コンストラクターの実行が終了するまで null のままです (アプリケーションが完全に終了した場合にのみ発生します)。この問題の修正は、Core クラスのすべての初期化をコンストラクターから init() メソッドに移動することでした。
これにより、(空のコンストラクターを使用して) Core を完全に作成できるため、関数が実行しようとしたときに変数は null ではなく、Init() のスコープ内になり、__construct() 内ではなくなります。
新しいコード:
try{
$Core = new Core;
$Core->Init();
}
catch(Exception $e){
echo 'We\'re Sorry, but an error has occured: <br /> '. $e. "\n";
}
function PP($Object){
global $Core;
echo '<pre>'.$Core->Tools()->DebugPrint($Object).'</pre>';
}