Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 以字符串形式访问类中的成员_Php - Fatal编程技术网

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();

在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();

给出:
500500
(用PHP5.3测试)

是的,可以,但不鼓励这样做

要使用类似于
$aObj->“id”=1
的东西,只需将名称放在括号中即可

$aObj->{“id”}=1


如果你想问为什么不鼓励这样做,那很简单:这是不可预测的,无法维护的。

你试过了吗
$aObj->{$x}
您是在问这是否可能,还是因为它不适合您?在这里提问之前,你应该先测试一下。是的,这是可能的。你的问题暗示这不起作用,但是你发布的代码可以正常工作<代码>$aObj->$x=1“不鼓励”-你有推荐人吗?请注意,如果属性名保存在变量中(如OP中),则需要大括号。@w3d它是不可预测的,不可维护的。这是PHP的任何版本,包括PHP 4(只要类定义兼容)。