簡體   English   中英

在實例化時將每個新的PHP對象存儲在數組中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM