何时在 PHP 中使用 'Self' 和 '$This'
在 PHP 中,了解 'self' 和 '$This' 之间的区别这一点至关重要。 'Self' 指的是当前类,而 '$this' 指的是当前对象。
何时使用 'Self':
访问静态成员(变量或方法):
class MyClass { static $static_member = 10; } echo MyClass::$static_member; // Output: 10
调用父类方法:
class ChildClass extends ParentClass { public function myMethod() { self::parentMethod(); // Calls the parent class method } }
何时使用 '$This':
正在访问非静态成员:
class MyClass { private $instance_member = 20; } $obj = new MyClass(); echo $obj->instance_member; // Output: 20
调用实例方法:
class MyClass { public function myMethod() { echo $this->instance_member; // Accesses the instance member } }
多态:从派生类调用实例方法:
class BaseClass { public function myMethod() { echo 'BaseClass::myMethod()'; } } class DerivedClass extends BaseClass { override public function myMethod() { echo 'DerivedClass::myMethod()'; } } $baseObj = new BaseClass(); $derivedObj = new DerivedClass(); $baseObj->myMethod(); // Output: 'BaseClass::myMethod()' $derivedObj->myMethod(); // Output: 'DerivedClass::myMethod()'
抑制多态性:在派生类中使用“self”调用父类方法:
class BaseClass { public function myMethod() { echo 'BaseClass::myMethod()'; } } class DerivedClass extends BaseClass { override public function myMethod() { parent::myMethod(); // Calls the BaseClass's myMethod() using self:: } } $derivedObj = new DerivedClass(); $derivedObj->myMethod(); // Output: 'BaseClass::myMethod()'
以上是PHP `self` 与 `$this`:何时分别使用?的详细内容。更多信息请关注PHP中文网其他相关文章!