ペチパーノート

WEB開発系Tipsブログです。

オブジェクトのプロパティ名に変数で参照する方法

<?php

$human = (object) [
    'name' => 'taro',
     'height' => 175,
     'weight' => 70,
     'family' => (object) [
         'sister01' => 'hanako',
         'sister02' => 'junko',
    ]
];
var_dump($human);
/*
object(stdClass)#2 (4) {
  ["name"]=>
  string(4) "taro"
  ["height"]=>
  int(175)
  ["weight"]=>
  int(70)
  ["family"]=>
  object(stdClass)#1 (2) {
    ["sister01"]=>
    string(6) "hanako"
    ["sister02"]=>
    string(5) "junko"
  }
}
*/

$prop_name = 'name';
echo $human->$prop_name; // taro

$prop_name = 'family';
echo $human->$prop_name->{'sister01'}; // hanako