PHP OOP按属性查找对象

PHP OOP按属性查找对象,php,function,class,oop,object,Php,Function,Class,Oop,Object,我试图通过生成一个随机数并根据该数检查对象ID来提取一个类(对象)的随机实例 我发现了很多关于如何检索对象属性的信息(特别是在这里,它是id),但不是在不知道首先是哪个对象的情况下 所以在我的班级里我有 public function getID() { return $this->id; } 但是 只有当我将其用作 $object->getID() 有没有一种方法可以在不指定对象的情况下对类中的每个对象执行类似的操作 我试图避免为类中的每个对象编写if/then。您可以设置一个

我试图通过生成一个随机数并根据该数检查对象ID来提取一个类(对象)的随机实例

我发现了很多关于如何检索对象属性的信息(特别是在这里,它是id),但不是在不知道首先是哪个对象的情况下

所以在我的班级里我有

public function getID() {
return $this->id;
}
但是

只有当我将其用作

$object->getID()
有没有一种方法可以在不指定对象的情况下对类中的每个对象执行类似的操作


我试图避免为类中的每个对象编写if/then。

您可以设置一个对象数组,然后迭代该数组并对每个对象调用getID()方法。如果您的对象数组名为$myObjects

foreach($myObjects as $object) {
    $object->getID();  //And do something with it
}
但是,如果您想从一组对象中随机选取一个对象,那么测试一整组对象以确定它们是否是您拾取的对象并不理想。最好将它们放入一个数组中,然后使用从数组中选择一个随机对象


你这样做的目的是什么?这可能意味着一种更好的方法。

我认为你必须为这种可能性做好计划,然后将候选对象循环为@超现实梦想;建议


参见

“类中的对象”你的意思是在类中嵌入其他对象,例如,
$foo->bar->baz()
,其中bar是与foo作为实例的类不同的其他对象?这里的技术术语有点混乱。没有“类中的对象”这样的东西。类是从中创建对象的蓝图。其次,对象不包含对象。一个对象可以包含一个数组,该数组可以包含对象(一个对象可以包含一个对象作为属性)。如果目标是类的方法(函数),则必须提供一个对象。这个对象可以匿名命名,意思是
$object->getID()
$item->getID()
可以包含完全相同的对象。Marc B和dbf感谢您的评论,看起来我用我的措辞把问题复杂化了。这些对象只是一个类的实例。我认为array_rand()可以工作,并且是一个比我现在讨论的更简单的解决方案。谢谢你的提示。
foreach($myObjects as $object) {
    $object->getID();  //And do something with it
}