私は OOP にはかなり慣れていませんが、クラスがあり、作成された各オブジェクトを配列にプッシュしています (クラス内のすべてのオブジェクトを反復処理する方法はないと思います)。私のクライアントはまだ PHP4 を使用しているため、問題が発生していました。
バージョン 4 には __construct メソッドが付属していないため、独自に作成しました。
function construct() {
global $LIST;
array_push($LIST, &$this);
}
&
beforeがなければ、$this
空のオブジェクトを配列に追加するだけです。これは、インスタンス化された後、各オブジェクトのいくつかのプロパティを変更するためです。ただし、今では警告が表示されます。
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of array_push(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file.
警告を抑制しようとしましたが、@ の前にはarray_push()
機能しません。どうやらerror_reporting(0)
ルートファイルにない限り動作しないようです (これらはすべて、非常に多くのページのインクルード内にあります)。php.ini ファイルにもアクセスできません。