次のオブジェクトの配列について考えてみます。
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")
);
オブジェクトにすばやくアクセスする方法はありますか?別のデータ型でアクセスしやすくなる場合は、(配列ではなく)別のデータ型に格納してもかまいません。
オブジェクトへのアクセス例:「Paul」オブジェクトを歌手の職業に変更したいと思います。これが現在の解決策です。
foreach ( $people as &$p ) {
if ( $p->name=="Paul" )
$p->occupation="singer";
}
または、別のプロパティに基づいてアクセスする必要がある場合があります。すべての歌手の名前をYokoに変更しましょう。
foreach ( $people as &$p ) {
if ( $p->occupation=="singer" )
$p->="Yoko";
}
オブジェクトにアクセスする別の例、今回はリンゴの占領を得るために:
$ringosOccupation="";
foreach ( $people as $p ) {
if ( $p->name=="Ringo" )
$ringosOccupation = $p->occupation;
}
各Personオブジェクトを内部配列に格納し、職業を変更または読み取るための関数を提供するPeopleクラスを作成できると思いますが、PHPに何か賢いものが組み込まれている場合は、知りたいと思います。
ありがとう。