📅  最后修改于: 2023-12-03 15:34:55.022000             🧑  作者: Mango
在面向对象编程中,self 和 $this 都是关键字,但其使用有所不同。
self
是一个指向当前类的指针,它可以在类的内部访问。使用 self
可以引用当前类的属性或方法。多数情况下,self
作为静态指针使用。
在类中使用 self
可以方便地访问和修改类的静态属性和方法。
class ExampleClass {
public static $exampleProperty = 0;
public static function exampleMethod() {
self::$exampleProperty++;
}
}
ExampleClass::exampleMethod();
echo ExampleClass::$exampleProperty; // 输出 1
$this
是指向当前对象的指针,它只能在类的实例方法中使用。使用 $this
可以引用对象的属性和方法。$this
是关于动态指针的概念。
在 PHP 中,当前对象是 new
关键字创建的实例,表示当前方法所在的对象。
class ExampleClass {
public $exampleProperty = 0;
public function exampleMethod() {
$this->exampleProperty++;
}
}
$example = new ExampleClass();
$example->exampleMethod();
echo $example->exampleProperty; // 输出 1
self
是指向当前类的指针,而 $this
是指向当前对象的指针self
可以在类的任何方法中使用,用于引用该类的静态属性或方法$this
只能在类的实例方法中使用,用于引用该对象的属性或方法因此,取决于您想访问的属性或方法是类级别的还是实例级别的,您需要在 self 和 $this 中进行选择。