从PHP手册:
class Bear {
// define properties
public $name;
public $weight;
public $age;
public $sex;
public $colour;
// constructor
public function __construct() {
$this->age = 0;
$this->weight = 100;
}
如果行$this->age = 0;
更改为$age = 0;
这个更改有什么确切的效果,我对对象和类会发生什么感兴趣?
答案 0 :(得分:7)
您将为本地变量年龄分配0。由于它不存在,它将被初始化。一旦构造函数超出范围,就会忘记年龄。班级成员年龄不会改变。
答案 1 :(得分:1)
类变量“age”不受更改的影响。这是一个很好的例子,为什么会出现这种情况:
class Bear {
// define properties
public $name;
public $weight;
public $age;
public $sex;
public $colour;
// constructor
public function __construct($age) {
$age = $age * 2; // Convert to bear years.
$this->age = $age;
$this->weight = 100;
}
}
现在,当我们创建熊时,我们可以选择通过构造函数设置年龄:
$ben = new Bear(8);
我们也可以像在构造函数中那样修改熊的年龄:
$ben->age = 12;
这给变量一个范围。本的年龄特定于他。这是一个局部变量。