在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;为什么在这些变量之前没有美元符号?
发布于 2011-09-23 19:12:38
你说得对,$代表变量。但在类实例中,您不再在属性上使用$,因为PHP会解释,这可能会导致错误。例如,如果使用
$bldgA->$number_of_floors;这不会返回对象的$number_of_floors属性,但PHP将首先查看$number_of_floors的值,例如3,因此前一行将是
$bldgA->3;这会给你一个错误
发布于 2011-09-23 19:09:26
$是在PHP中引用变量的方式。PHP中的变量是动态类型的,这意味着它们的类型由分配给它们的内容决定。这是PHP手册中关于的页面。
$a =“这是一个字符串”;
$b = 1;//这是一个整型
$bldgA = new Building('red');// bldgA是一个变量,也是Building类的一个对象(也称为实例)。
$bldgA->describe();//这调用describe(),它是类构建的成员函数(请记住,$bldgA被声明为类构建的对象)
$bldgA-> number_ of _floors;// number_of_floors是构建类的数据成员。您可以将其视为类中的一个变量,但由于它是具有固定名称的类的一部分,因此不能用$引用它。
发布于 2011-09-23 19:10:41
$bldgA = new Building('red');在本例中,$bldgA是一个对象。
$bldgA->describe();从对象$bldgA调用函数describe()
$bldgA->number_of_floors;从对象$bldgA访问变量number_of_floors
但是你真的应该看看php.net/manual/en/language.oop5.basic.php
https://stackoverflow.com/questions/7527999
复制相似问题