Я не знаю, что он делает, когда у нас есть такая ситуация:
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 ?>