美元符号在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();
?>
Run Code Online (Sandbox Code Playgroud)
它似乎$表示一个变量,如:
$number_of_floors
$color
Run Code Online (Sandbox Code Playgroud)
但是当我看到以下情况时,我感到困惑:
$bldgA->describe();
$bldgA->number_of_floors;
Run Code Online (Sandbox Code Playgroud)
为什么在这些变量之前没有美元符号?
Mik*_*ona 18
你是对的,$是变量.但是在类实例中,你不再使用$属性,因为PHP会解释,这可能会导致错误.例如,如果您使用
$bldgA->$number_of_floors;
Run Code Online (Sandbox Code Playgroud)
这不会返回对象的$ number_of_floors属性,但PHP会首先查看$ number_of_floors的值,比如说3,所以前一行是
$bldgA->3;
Run Code Online (Sandbox Code Playgroud)
这会给你一个错误
$是 PHP 中引用变量的方式。PHP 中的变量是动态类型的,这意味着它们的类型由分配给它们的内容决定。这是PHP 手册中有关变量的页面。
$a = "这是一个字符串";
$b = 1; // 这是一个 int
$bldgA = 新建筑('红色'); // bldgA 是 Building 类的变量和对象(也称为实例)。
$bldgA->描述(); // 这调用了describe(),它是Building类的成员函数(记住$bldgA被声明为Building类的一个对象)
$bldgA->楼层数;// number_of_floors 是 Building 类的数据成员。您可以将其视为类内的变量,但由于它是具有固定名称的类的一部分,因此您不能使用 来引用它$。