如何获取类的实例列表
可能的重复:
获取 PHP 中某个类的所有实例
如果我有类并创建该类的多个实例,有没有办法让我通过 PHP 检索这些实例的完整列表?我正在使用 PHP 5.3.6。
Possible Duplicate:
Get all instances of a class in PHP
If I have a class and create a number of instances of that class, is there a way for me to retrieve a full list of those instances via PHP? I'm using PHP 5.3.6.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
不,你不能这样做。您可以为创建对象构建工厂类并将它们存储在静态数组中。
No, you can't do it. You can build factory class for creation objects and store them in static array.
向您的方法添加一个静态计数器,并在每次使用构造函数时添加它。每次调用 destruct 时都要减去。
这至少可以让您了解有多少实例还活着。
Add a static counter to your method, and add to it every time the constructor is used. Subtract every time destruct is called.
That should give you an idea at least of how many instances are alive.
无论语言如何,执行此操作的最佳方法是在类内创建实例的单例数组列表,并在调用构造函数时将其添加到其中。
The best way to do this regardless of language is to create a singleton arraylist of instances inside the class and add to it whenever the constructor is called.
只需在类中添加一个私有静态变量,每次调用构造函数时,都会递增该变量。通过公共函数,您可以获得变量的值。 :)
Just add a private static variable inside the class and eacht time the constructor is called, you increment the variable. And with a public function you can get the value of the variable. :)
恐怕你做不到这一点。
但是,您可以尝试在每次构建类时将实例添加到变量
I'm afraid you're not able to do this.
However, you can try to add instance to variable everytime you're constructing your class
您可以做的最好的事情就是使用 get_define_vars() 列出所有变量。您还应该查看
get_object_vars()
。The best you can probably do is use
get_defined_vars()
to list all vars. You should also look intoget_object_vars()
.