考虑以下对象数组:
class Person {
public $name;
public $occupation;
public function __construct($n, $o){
$this->name = $n;
$this->occupation = $o;
}
}
$people = array(
new Person("John", "singer"),
new Person("Paul", "guitar"),
new Person("George", "bass"),
new Person("Ringo", "drums")
);
有什么快速访问对象的方法吗?如果另一种数据类型可以使访问更容易,我不介意将它们存储在不同的数据类型(而不是数组)中。
访问对象的示例:我现在想将“保罗”对象更改为歌手的职业。这是当前的解决方案:
foreach ( $people as &$p ) {
if ( $p->name=="Paul" )
$p->occupation="singer";
}
或者,我可能需要基于不同的属性进行访问:让我们将所有歌手的名字更改为 Yoko:
foreach ( $people as &$p ) {
if ( $p->occupation=="singer" )
$p->="Yoko";
}
另一个访问对象的例子,这次是为了得到Ringo的占用:
$ringosOccupation="";
foreach ( $people as $p ) {
if ( $p->name=="Ringo" )
$ringosOccupation = $p->occupation;
}
我想我可以编写一个 People 类,将每个 Person 对象存储在一个内部数组中,并提供更改或读取占用的函数,但是如果 PHP 有任何更聪明的构建,我很想知道。
谢谢。