Php 以字符串形式访问类中的成员
在PHP中,我们可以执行以下操作吗Php 以字符串形式访问类中的成员,php,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();
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();
给出:
500500
(用PHP5.3测试)是的,可以,但不鼓励这样做
要使用类似于$aObj->“id”=1
的东西,只需将名称放在括号中即可
$aObj->{“id”}=1代码>
如果你想问为什么不鼓励这样做,那很简单:这是不可预测的,无法维护的。你试过了吗$aObj->{$x}
您是在问这是否可能,还是因为它不适合您?在这里提问之前,你应该先测试一下。是的,这是可能的。你的问题暗示这不起作用,但是你发布的代码可以正常工作<代码>$aObj->$x=1代码>“不鼓励”-你有推荐人吗?请注意,如果属性名保存在变量中(如OP中),则需要大括号。@w3d它是不可预测的,不可维护的。这是PHP的任何版本,包括PHP 4(只要类定义兼容)。