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