【发布时间】:2012-02-16 20:39:35
【问题描述】:
有没有办法在 PHP 中遍历一个类的所有实例?我可以通过在创建它们时使用静态变量对它们进行计数来手动完成,但我更希望能够创建一个适用于类的每个实例的静态方法。
例如,假设我有一个名为 Ball 的类,它通过其构造函数为每个球创建一个唯一 ID 和一组特征。 Ball 类有一个方法可以通过名为 getCSSrule() 的方法为特定的球生成 CSS。我想创建一个名为 getCSS() 的静态方法,该方法将为每个现有的球调用 getCSSrule(),为当前存在的所有球写出整个 CSS 块。然后,我可以只调用 Ball::getCSS() 一次,而不是为每个球调用 $obj->getCSSrule()。
public static function getCSS(){
$css;
foreach(Ball as $obj){
$css += $obj->getCSSrule();
}
return $css;
}
foreach 似乎既不能作为类中的静态方法工作,也不能作为类外的函数工作。目前我必须制作一个球名数组并使用它来查找该类的每个实例。谢谢!
【问题讨论】:
-
我很难理解你想要做什么。请澄清问题。也许删除所有实现细节,只说明你的设置/场景以及你想要的输出/目标是什么。
-
看起来类似于this question
-
很好找 parkker007,我错过了那个。
-
谢谢戈登。你很好地回答了我的问题。您的第一种方法效果很好,当我的声誉允许我这样做时,我会投票给它......我也非常喜欢第二种方法,并将很快对其进行测试。