美元符号在PHP中意味着什么?我有这段代码:
<?php
class Building {
public $number_of_floors = 5;
private $color;
public function __construct($paint) {
$this->color = $paint;
}
public function describe() {
printf('This building has %d floors. It is %s in color.',
$this->number_of_floors,
$this->color
);
}
}
$bldgA = new Building('red');
$bldgA->describe();
?>
似乎$
表示如下变量:
$number_of_floors
$color
但是当我看到以下情况时,我感到困惑:
$bldgA->describe();
$bldgA->number_of_floors;
为什么在这些变量之前没有美元符号?
答案 0 :(得分:18)
你是对的,$是变量。但是在类实例中,你不再使用$属性,因为PHP会解释,这可能会导致错误。例如,如果您使用
$bldgA->$number_of_floors;
这不会返回对象的$ number_of_floors属性,但PHP会首先查看$ number_of_floors的值,比如说3,所以上一行将是
$bldgA->3;
这会给你一个错误
答案 1 :(得分:3)
$
是在PHP中引用变量的方法。 PHP中的变量是动态类型的,这意味着它们的类型取决于分配给它们的内容。以下是PHP手册中关于 variables 的页面。
$ a =“这是一个字符串”;
$ b = 1; //这是一个int
$ bldgA = new Building('red'); // bldgA是一个变量和一个构建类的对象(也就是一个实例)。
$ bldgA-&GT;描述(); //这调用describe(),它是类Building的成员函数(记住$ bldgA被声明为类Building的对象)
$ bldgA-&GT; number_of_floors; // number_of_floors是类Building的数据成员。您可以将其视为类中的变量,但由于它是具有固定名称的类的一部分,因此您不会使用$
引用它。
答案 2 :(得分:2)
$bldgA = new Building('red');
在这种情况下,$ bldgA是一个对象。
$bldgA->describe();
从对象$ bldgA
中调用函数describe()$bldgA->number_of_floors;
从对象$ bldgA
中访问变量number_of_floors答案 3 :(得分:0)
是的,这是带有指定类的实例的变量。当它反对时,你就像这样调用/获取参数。请阅读PHP中的OOP。它对您来说非常方便,可以帮助您了解它是如何工作的:)
答案 4 :(得分:0)
$ bldgA是Building Building
的变量因此您可以使用$ Building-&gt; function_name
来访问类功能示例:
$foo = $bldgA->describe();
$ number_of_floors是类
中的变量答案 5 :(得分:0)
$bldgA->number_of_floors;
不调用局部变量,而是调用类的属性(它类似于类定义的局部变量部分)。
但是可以调用$bldgA->$property_name;
,其中$ property_name是要调用的属性的名称。这被称为变量变量,你可能应该在之后了解,你已经掌握了OOP基础知识。
答案 6 :(得分:-1)
编写$bldgA = new Building('red');
时,为变量$bldgA
分配一个新创建的类Building
对象。对象是一种可能的变量。
通常,当您看到$
时,它始终引用变量。 $bldgA->number_of_floors;
应理解为:访问变量$bldgA