自我与$this:何时以及如何使用每个
问题:
在 PHP 5 中,关键字“self”和“$this”的用法有何不同?什么时候应该适当使用?
答案:
简答:
使用“$this”来指代当前对象的实例变量和方法。使用“self”引用当前类的静态变量和方法。
完整答案:
非静态与静态成员:
多态性:
示例(正确用法):
class X { private $non_static_member = 1; private static $static_member = 2; function __construct() { echo $this->non_static_member . ' ' . self::$static_member; } } new X(); // Output: 1 2
示例(不正确用法):
class X { private $non_static_member = 1; private static $static_member = 2; function __construct() { echo self::$non_static_member . ' ' . $this->static_member; // Incorrect usage } } new X(); // Error: Undefined properties
抑制多态性:
class X { function foo() { echo 'X::foo()'; } function bar() { self::foo(); // Suppresses polymorphism } } class Y extends X { function foo() { echo 'Y::foo()'; } } $x = new Y(); $x->bar(); // Output: X::foo()
总结:
使用 "$ this”用于非静态成员访问和多态性。当您需要抑制多态性时,请使用“self”进行静态成员访问。
以上是PHP 5:`$this` 与 `self` – 何时使用每个?的详细内容。更多信息请关注PHP中文网其他相关文章!