Что означают два двоеточия в PHP?

Я не знаю, что он делает, когда у нас есть такая ситуация:

Foo::Bar 

Это похоже на путь.

Это (обычно) для доступа к статическому методу или свойству в классе. Он называется оператором разрешения области или Paamayim Nekudotayim (что приводит к некоторым удивительно запутывающим сообщениям об ошибках!). См. http://www.php.net/manual/en/language.oop5.paamayim-nekudotayim.php .

Оператор :: оператор разрешения области . Он используется для доступа к константам классов или статическим свойствам и методам либо вне класса:

 ClassName::CONSTANT_VALUE ClassName::staticMethod() 

Или в методе класса для ссылки на тот же или родительский класс, используя self и parent :

 self::CONSTANT_VALUE self::staticMethod() parent::CONSTANT_VALUE parent::staticMethod() 

Оператор разрешения области действия (: 🙂 двойной двоеточие – это токен, который позволяет получить доступ к статическим , постоянным и переопределенным свойствам или методам класса.

 <?php class A { public static $B = '1'; # Static class variable. const B = '2'; # Class constant. public static function B() { # Static class function. return '3'; } } echo A::$B . A::B . A::B(); # Outputs: 123 ?>