PHP中$this和self的区别
$this
[toc]
$this 代表当前对象实例(Object Instance)的引用。只能在类的非静态方法中使用,用于访问当前实例的非静态成员(非静态属性和非静态方法)。
self
self 指向当前类(Class)本身。常用于在类内部访问静态成员(静态属性、静态方法)以及类常量(const)。与 $this 不同,self 不依赖于对象实例。
操作符
->(对象操作符): 用于通过对象实例访问非静态成员(属性或方法)。通常与$this结合(如$this->property)。::(范围解析操作符 / 双冒号): 用于访问静态属性、静态方法或类常量。通常与self结合(如self::$staticProperty或self::CONSTANT)。
$this 和 self 的核心区别:
- 指向不同:
$this指向当前对象实例,而self指向类本身。 - 适用成员:
$this用于访问非静态成员,self用于访问静态成员和类常量。self无法直接访问非静态属性。 - 静态方法限制:在静态方法中,不能使用
$this(因为静态方法被调用时可能还没有对象实例),只能使用self。
1 | |
PHP中$this和self的区别
https://nanxfu.github.io/2020/03/28/PHP中$this和self的区别/