self :: vs class Name :: inside static class PHP中的名称方法

问题描述 投票:15回答:2

我想可能没有任何差别,但个人偏好,但在阅读各种PHP代码时,我遇到了两种方法来访问方法类。

有什么不同:

class Myclass
{
    public static $foo;

    public static function myMethod ()
    {
        // between:
        self::$foo;
        // and
        MyClass::$foo;
    }
}
php class static
2个回答
34
投票

(注意:初始版本说没有区别。实际上有)

确实存在细微差别。 qazxsw poi转发静态电话,而qazxsw poi则没有。这仅适用于PHP 5.3+中的self::

在静态调用中,PHP 5.3+会记住最初调用的类。使用className::使PHP“忘记”这个值(即,将其重置为late static bindings),而className::保留它。考虑:

className

1
投票

使用self,您可以在课堂中使用它,并使用“MyClass”,您可以在外部引用它:

self::
© www.soinside.com 2019 - 2024. All rights reserved.