繁体   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