Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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_Oop_Properties_Getter Setter - Fatal编程技术网

访问PHP对象属性的语法是什么?

访问PHP对象属性的语法是什么?,php,oop,properties,getter-setter,Php,Oop,Properties,Getter Setter,如何访问PHP对象的属性? 另外,访问对象的属性与 $this->$property1与$this->property1相比 当我尝试使用$this->$property1时,出现以下错误: “PHP:无法访问空属性” PHP的对象属性上有一条注释提到了这一点,但该注释并未真正深入解释。$this->property1的意思是: 使用该对象并将变量property1绑定到此对象 $this->$property1表示: 计算字符串$property1并使用结果获取由绑定到此对象的$propert

如何访问PHP对象的属性?

另外,访问对象的属性与
$this->$property1
$this->property1
相比

当我尝试使用
$this->$property1
时,出现以下错误:

“PHP:无法访问空属性”


PHP的对象属性上有一条注释提到了这一点,但该注释并未真正深入解释。

$this->property1
的意思是:

使用该对象并将变量property1绑定到此对象

$this->$property1
表示:


计算字符串$property1并使用结果获取由绑定到此对象的$property1 result命名的变量

property1
是字符串,而
$property1
是变量。因此,当访问
$this->$property1
时,PHP会查找名为
$property1
的变量的内容,因为它(可能)不存在,所以它是空的,这就是为什么出现
无法访问空属性
错误的原因

  • $property1
    //特定变量
  • $this->property1
    //特定属性
  • 类的一般用法是不使用
    “$”
    ,否则您将调用一个名为
    $property1
    的变量,该变量可以取任何值

    例如:

    X类{
    公共$property1='价值1';
    公共$property2='价值2';
    }
    $property1='property2'//属性2的名称
    $x_对象=新的x();
    echo$x_对象->属性1//返回“值1”
    echo$x_对象->$property1//返回“值2”
    
    取而代之的是本手册页面,并查找“可变属性名称”部分:(第一部分可能对您也很感兴趣)(在您答案中链接的页面上找到,您应该更仔细地阅读文档)@hakra手册链接通常不被视为答案,因为这些链接往往会发生变化。。。但是,我同意引用和/或链接到来源对于回答者来说是一个更好的变体,如果财产有一个空间,如ˋprop nr 1ˋ?我不理解为什么echo$x_object->$property1;返回“值2”,但不返回“属性2”。。。