首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实例化时将每个新的PHP对象存储在数组中

实例化时将每个新的PHP对象存储在数组中
EN

Stack Overflow用户
提问于 2013-10-28 19:52:55
回答 1查看 338关注 0票数 0

我对OOP非常陌生,但我有一个类,在创建了每个对象之后,我将它们推入数组中(我认为没有方法来迭代类中的每个对象)。我的客户还在PHP4上,所以我遇到了一些麻烦。

由于版本4没有附带__construct方法,所以我创建了自己的:

代码语言:javascript
复制
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)将无法工作(所有这些内容都在包含在许多页面上的内容中)。我也无法访问php.ini文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-28 20:18:32

我发现很难相信它只与&$this一起工作,因为错误消息声明它是通过值aka传递对象,无论怎样,它都是$this

另外,类声明中的global?坏的。霍里巴德。你为什么不做下面的事情呢?

代码语言:javascript
复制
$LIST[] = new MyObject();

如果PHP4是如此过时以致于$arr[]语法仍然无效,那么:

代码语言:javascript
复制
array_push($LIST, new MyObject());

还有,上帝。PHP4?升级它。我是认真的。我认为您不可能想出一个正当的理由在这个时候仍然使用PHP4。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19643862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档