访问 PHP 对象属性的语法是啥? [关闭]
Posted
技术标签:
【中文标题】访问 PHP 对象属性的语法是啥? [关闭]【英文标题】:What is the syntax for accessing PHP object properties? [closed]访问 PHP 对象属性的语法是什么? [关闭] 【发布时间】:2012-09-16 06:13:13 【问题描述】:如何访问 PHP 对象的属性?
另外,访问对象的属性有什么区别
$this->$property1
与 $this->property1
?
当我尝试使用$this->$property1
时出现以下错误:
'php:无法访问空属性'。
关于对象属性的 PHP 的 documentation 有一条评论提到了这一点,但该评论并没有真正深入解释。
【问题讨论】:
取而代之的是本手册页并查找“变量属性名称”部分:php.net/manual/en/language.variables.variable.php(第一部分可能对您也很有趣)(在您在答案中链接的页面上找到,您应该更仔细地阅读文档) 【参考方案1】:$property1
// 具体变量
$this->property1
// 具体属性
类的一般用途是不带"$"
,否则您调用的变量名为$property1
,它可以取任何值。
例子:
class X
public $property1 = 'Value 1';
public $property2 = 'Value 2';
$property1 = 'property2'; //Name of attribute 2
$x_object = new X();
echo $x_object->property1; //Return 'Value 1'
echo $x_object->$property1; //Return 'Value 2'
【讨论】:
如果属性有空格,比如ˋprop nr 1ˋ? 不明白为什么 echo $x_object->$property1;返回“值 2”但不返回“属性 2”...【参考方案2】:property1
是一个字符串,而$property1
是一个变量。因此,当访问$this->$property1
时,PHP 会查找名为 $property1
的变量的内容,因为它(可能)不存在,所以它是空的,所以这就是你得到 Cannot access empty property
错误的原因。
【讨论】:
【参考方案3】:$this->property1
表示:
使用对象并获取绑定到该对象的变量property1
$this->$property1
表示:
计算字符串 $property1 并使用结果获取绑定到此对象的 $property1 结果命名的变量
【讨论】:
@hakra 到手册的链接通常不被视为答案,因为这些链接往往会改变......但是,我同意引用和/或到源的链接将是一个更好的变体一个答案以上是关于访问 PHP 对象属性的语法是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
在 python 中,将函数用作类的属性的正确语法是啥? [关闭]