我正在编写这个简单的代码,但不知道构造函数的问题是什么:
class Animal {
public $_type;
public $_breed;
public function __construct ($t, $b) {
echo "i have initialized<br/>";
$this ->_type = $t;
$this ->_breed = $b;
echo "type is " .$_type. "<br/>";
echo "breed is " .$_breed. "<br/>";
}
public function __destruct () {
echo "i am dying";
}
}
$dog = new Animal("Dog", "Pug");
Run Code Online (Sandbox Code Playgroud)
为什么后面有空格$this?删除空间。
另外,$this在调用变量时添加。
class Animal {
public $_type;
public $_breed;
public function __construct ($t, $b) {
echo "i have initialized<br/>";
$this->_type = $t; // <-- remove space
$this->_breed = $b; // <-- remove space
echo "type is " .$this->_type. "<br/>"; // <-- add $this
echo "breed is " .$this->_breed. "<br/>"; // <-- add $this
}
public function __destruct () {
echo "i am dying";
}
}
Run Code Online (Sandbox Code Playgroud)
由于$_type和 的$_breed作用域是对象级别,因此您需要告诉 PHP 您在哪个作用域中引用它们。
因此,代替
echo $_breed;
Run Code Online (Sandbox Code Playgroud)
你需要
echo $this->_breed;
Run Code Online (Sandbox Code Playgroud)
顺便说一句,现在在变量名前加上 _ 是非常奇怪的做法,如果它们是公共变量则更是如此。这可能会让使用您的代码的其他开发人员感到困惑。
| 归档时间: |
|
| 查看次数: |
6169 次 |
| 最近记录: |