PHP中何时使用self,何时使用$this?区别与示例
大家好!我开始学习PHP的OOP,但始终无法理解`self`和`$this`之间的区别。它们似乎都用于在类内部访问属性和方法,但我总是搞混。
以下是我的代码示例:
```php
class User {
public $name = 'Гость';
public static $count = 0;
public function setName($name) {
$this->name = $name; // 为什么不用self?
}
public static function getCount() {
return self::$count; // 为什么不用$this?
}
}
```
当我写`$this->name`时,一切正常。但如果我写`self::$name`,就会报错。而对于static属性则相反:`self::$count`有效,而`$this->count`无效。
我读过手册,但内容太复杂。请用简单的话解释:何时需要使用`self::`,何时需要使用`$this->`?为什么它们的行为不同?我特别关心继承的情况——听说那里有陷阱。
提前感谢您的帮助!
<<>>