Laravel 中的双冒号是什么意思

Jsn*_*now 8 php laravel-5.2

例子 :

Auth::guard($guard)->guest()
Run Code Online (Sandbox Code Playgroud)

我不明白在 laravel 框架中双冒号 (::) 表示法是什么意思。从http://php.net/manual/en/language.oop5.paamayim-nekudotayim.php我了解到它代表范围解析运算符,用于访问类的静态、常量和覆盖的属性或方法。但是从laravel我了解到这Auth意味着类门面的别名所以我需要对上面的例子进行解释,特别是guard(parameter)->guest()意味着。
我还是 php 的新手,现在正在为我的后端学习 laravel 框架。

May*_*eyz 10

:: 范围解析运算符

::被称为scope resolution operator(AKA Paamayim Nekudotayim)。此运算符用于引用某些块或程序上下文的范围,如类、对象、命名空间等。对于此引用,标识符与此运算符一起用于访问或重现该范围内的代码。

参考

Auth::guard($guard)->guest():在这一行中,您使用的是静态类的guard()方法Auth。要使用静态类的功能,我们使用::范围解析运算符。


Bra*_*rad 5

您可能会在访问类的静态方法或属性时遇到这种情况。

例如:

class Foo
{
    public static function bar()
    {
      return "bar";
    }
}

Foo::bar // access the bar method without instantiating the Foo class.
Run Code Online (Sandbox Code Playgroud)