我们可以执行以下操作吗?在PHP中访问类中的成员PHP
class a{
public $id;
}
我们可以访问这个领域像这样的东西,
$x='id';
$aObj=new a();
$aObj->$x=1;//or $aObj->"id"=1
我们可以执行以下操作吗?在PHP中访问类中的成员PHP
class a{
public $id;
}
我们可以访问这个领域像这样的东西,
$x='id';
$aObj=new a();
$aObj->$x=1;//or $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
(测试用PHP 5.3)
这是PHP的_any_版本,包括PHP 4(提供的类定义是制作兼容)。 – MrWhite 2012-04-08 11:34:03
是,你可以,但不鼓励。
使用类似$aObj->"id"=1
只是把名字放在括号
$aObj->{"id"} = 1;
如果你问这是为什么沮丧,很简单:它是不可预测的,难以维护。
“不鼓励” - 你有参考吗?请注意,如果属性名称保存在一个变量中(如OP中那样),则需要注意花括号。 – MrWhite 2012-04-08 11:29:27
@ w3d这是不可预知的,不可维护的。 – 2012-04-08 11:32:10
你试过了吗? '$ aObj - > {$ x}' – safarov 2012-04-08 11:07:03
[TIAS](http://www.urbandictionary.com/define.php?term=TIAS) – 2012-04-08 11:09:56
你问是否可以或者你问,因为它没有为你工作?在你问这里问题之前,你应该真的测试一下。是的,这是可能的。 – Broncha 2012-04-08 11:10:24