PHPで、次のことができますか?
class a{
public $id;
}
このフィールドにアクセスするには、次のようにします。
$x='id';
$aObj=new a();
$aObj->$x=1;//or $aObj->"id"=1
PHPで、次のことができますか?
class a{
public $id;
}
このフィールドにアクセスするには、次のようにします。
$x='id';
$aObj=new a();
$aObj->$x=1;//or $aObj->"id"=1
はい、できますが、お勧めできません。
$aObj->"id"=1
名前を括弧に入れるだけのようなものを使用するには
$aObj->{"id"} = 1;
なぜこれが落胆するのかと尋ねているなら、それは簡単です。それは予測不可能であり、保守不可能です。
これは可能であるはずです:
class a {
public $id;
function getId() {
return $this->id;
}
}
$x = 'id';
$aObj = new a();
$aObj->$x = 500;
echo $aObj->id, " ", $aObj->getId();
与える: 500 500
(PHP5.3でテスト済み)