何时在$ this上使用self?

何时在$ this上使用self?,第1张

何时在$ this上使用self? 简短答案

使用

$this
来指代当前对象。用
self
指当前类。换句话说,
$this->member
用于静态成员
self::$member
用于静态成员

完整答案

这里是一个例子 正确 的使用

$this
self
用于非静态和静态成员变量:

<?phpclass X {    private $non_static_member = 1;    private static $static_member = 2;    function __construct() {        echo $this->non_static_member . ' '. self::$static_member;    }}new X();?>

这里是一个例子 不正确 的使用

$this
self
用于非静态和静态成员变量:

<?phpclass X {    private $non_static_member = 1;    private static $static_member = 2;    function __construct() {        echo self::$non_static_member . ' '. $this->static_member;    }}new X();?>

这是带有for成员函数的 多态 示例

$this

<?phpclass X {    function foo() {        echo 'X::foo()';    }    function bar() {        $this->foo();    }}class Y extends X {    function foo() {        echo 'Y::foo()';    }}$x = new Y();$x->bar();?>

这是通过使用for成员函数来 抑制多态行为 的示例

self

<?phpclass X {    function foo() {        echo 'X::foo()';    }    function bar() {        self::foo();    }}class Y extends X {    function foo() {        echo 'Y::foo()';    }}$x = new Y();$x->bar();?>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5441200.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存