PHP에서 static, self, $this의 차이점은 다음과 같습니다. 1. [$this]는 클래스의 비정적 메서드로 작성된 개체에 대한 참조를 나타냅니다. 2. Self는 this와 다릅니다. 3. static은 일반적으로 클래스의 정적 변수 및 정적 메서드에 액세스하는 데 사용됩니다.
PHP에서 static, self 및 $this의 차이점은 다음과 같습니다.
1 $this
는 $this가 아닌 개체에 대한 참조를 나타냅니다. 클래스의 정적 메서드, 클래스 인스턴스화, 메서드를 호출하는 사람(일반적으로 개체 호출) $this는 개체에 대한 참조를 나타냅니다. $this
表示对象的引用 $this写在类中的非静态方法中, 实例化该类,谁调用该方法(一般是对象调用)$this则表示该对象的引用。
<?php class Person { public $name; public function getName() { echo $this->name; } } $p = new Person(); $p2 = new Person(); $p->name = "小红"; $p2->name = "小明"; $p->getName(); // 小红 $p2->getName(); // 小明
2、self
和 this 不同,它指向类本身,不指向任何实例化对象,一般用来访问类中的静态变量和静态方法,也是写在类中的方法。self写在哪个类中则表示该类的引用
<?php class Person { public static $name = "小红"; public static function getName() { echo self::$name; } } $p = new Person(); $p2 = new Person(); $p::getName(); // 小红 $p2::getName(); // 小红 $p::$name = "小明"; $p::getName(); // 小明 $p2::getName(); // 小明
3、static
<?php class A { public function say() { echo "Hello"; } public function saySelf() { //static 和 self 可以调用非静态方法 不能调用非静态属性 静态方法中不能有$this // static 和 self 可以写在非静态的方法中 ,可以使用对象调用 self::say(); } public function sayStatic() { static::say(); } } class B extends A { public function say() { echo "World"; } } $b = new B(); $b->say(); // World $b->saySelf(); // Hello $b->sayStatic(); // World
2.
self
는 클래스 자체를 가리키며 일반적으로 정적 변수 및 정적 메서드에 액세스하는 데 사용됩니다. 수업 중에도 작성 방법이 있습니다. 어떤 클래스 자체가 작성되었는지는 클래스🎜🎜🎜🎜🎜rrreee🎜🎜🎜🎜🎜3의 참조를 나타냅니다. static
은 일반적으로 클래스의 정적 변수 및 정적 메서드에 액세스하는 데 사용됩니다. 클래스에 작성된 메서드는 메서드를 호출하는 클래스이기도 합니다. static은 클래스(클래스가 바인딩되어 있음)를 의미합니다.위 내용은 PHP에서 static, self, $this의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!