[英]Storing every new PHP object in array on instantiation
我對OOP還是很陌生,但是我有一個類,並且隨着每個對象的創建,我將它們壓入一個數組(我不認為有一種方法可以遍歷類中的每個對象)。 我的客戶端仍在使用PHP4,因此遇到了一些麻煩。
由於版本4不帶有__construct方法,因此我做了自己的事情:
function construct() {
global $LIST;
array_push($LIST, &$this);
}
在$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)
顯然不會起作用(所有這些東西都在很多頁面的include中)。 我也無權訪問php.ini文件。
我發現很難相信它僅與&$this
因為錯誤消息指出它無論如何都是通過值[aka,as $this
]傳遞對象。
另外,在類聲明中是global
嗎? 壞。 霍里巴德。 為什么不執行以下操作?
$LIST[] = new MyObject();
並且,如果PHP4太過陳舊,以致$arr[]
語法尚未生效,則:
array_push($LIST, new MyObject());
還有,聖神。 PHP4的? 升級它。 說真的 我不認為您可以提出一個合理的理由在此刻仍然使用PHP4。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.