Что означают два двоеточия в PHP?
Я не знаю, что он делает, когда у нас есть такая ситуация:
Он выглядит как путь.
ОТВЕТЫ
Ответ 1
Это (как правило) для доступа к статическому методу или свойству в классе. Он назывался оператором разрешения области или Paamayim Nekudotayim (что приводит к некоторым удивительно запутывающим сообщениям об ошибках!). См. http://www.php.net/manual/en/language.oop5.paamayim-nekudotayim.php.
Ответ 2
Оператором :: является оператор разрешения области. Он используется для доступа к константам классов или статическим свойствам и методам либо вне класса:
Или внутри метода класса ссылаться на тот же или родительский класс, используя self и parent :
Ответ 3
Ответ 4
использование оператора разрешения области
Константа класса, свойство класса (статическое), функция класса (статическая) могут иметь одно и то же имя и быть доступными через двойное двоеточие.
Ответ 5
В дополнение к ответам относительно использования PHP двух двоеточий в качестве «оператора разрешения области видимости»:
Кроме того, используется двойное двоеточие:
Чтобы преобразовать неквалифицированное, квалифицированное или псевдонимное имя класса в его полностью квалифицированную форму, и
Для вызова метода класса __callStatic.
Чтобы преобразовать имя класса в его полностью определенную форму, добавив «:: class»
Две двоеточия, за которыми следует ключевое слово «class», расположенное после имени класса, обеспечивают полное имя этого класса в виде строки. Т.е., «ClassName :: class» преобразуется в полное имя «ClassName». См. (A) Руководство: классы и объекты: основы, (B) Руководство: классы и объекты: константы классов и (C) Руководство: справочник по языку: константы
Синтаксис был принят в PHP 5.5. Смотрите: (A) RFC и (B) PHP 5.5 Новые функции
Синтаксис «:: class» полезен в пространстве имен для получения полностью определенного имени класса из его неквалифицированной или квалифицированной формы или из псевдонима его имени.
Синтаксис «:: class», по-видимому, работает для разрешения имен интерфейсов, а также имен классов, хотя это, похоже, не документировано источниками, указанными выше.
Внутри класса синтаксис также работает с «self :: class», как упомянуто в RFC «:: class», указанном выше.
Для вызова «__callStatic»
Две двоеточия могут использоваться для «вызова» статического имени метода, которое класс не объявил. Это вызывает метод класса «__callStatic», если он его объявил. Затем метод __callStatic может «динамически» выбирать, как обрабатывать вызов. В PHP это называется «перегрузкой» с помощью «магического метода» __callStatic.
Что означает двойное двоеточие в php
Используя эту оператор :: можно обращаться к константам, статическим или перегруженным свойствам или методам класса.
При обращении к этим элементам извне класса, программист должен использовать имя этого класса.
Обозначение «двойное двоеточие» (::) не менялось ни разу в течение всего времени разработки PHP.
Использование :: вне объявления класса
class MyClass <
const CONST_VALUE = ‘Значение константы’ ;
>
echo MyClass :: CONST_VALUE ;
?>
Использование :: в объявлении класса
Когда дочерний класс перегружает методы, объявленные в классе-родителе, PHP не будет осуществлять автоматический вызов методов, принадлежащих классу-родителю. Этот функционал возлагается на метод, перегружаемый в дочернем классе. Данное правило распространяется на конструкторы и деструкторы, перегруженные и другие методы.
Обращение к методу в родительском классе
protected function myFunc () <
echo «MyClass::myFunc()\n» ;
>
>
class OtherClass extends MyClass <
/* Override parent’s definition */
public function myFunc () <
/* But still call the parent function */
parent :: myFunc ();
echo «OtherClass::myFunc()\n» ;
>
>
Все специфические возможности, которыми обладает оператор :: в PHP5, не являются доступными в более ранних версиях PHP.
Что означают две двоеточия в PHP?
Я не знаю, что он делает, когда у нас такая ситуация:
Это похоже на путь.
5 ответов
Это (обычно) для доступа к статическому методу или свойству в классе. Это называется оператор разрешения области действия, или Paamayim Nekudotayim (что приводит к некоторым удивительно запутанным сообщениям об ошибках!). См. http://www.php.net/manual/en/language.oop5.paamayim-nekudotayim.php.
Или в методе класса для ссылки на тот же или родительский класс, используя self а также parent :
Использование оператора разрешения области
Константа класса, свойство класса (статическое), функция класса (статическая) могут иметь одно и то же имя и быть доступными через двойное двоеточие.
В дополнение к ответам относительно использования PHP двух двоеточий в качестве «оператора разрешения области видимости»:
Кроме того, используется двойное двоеточие:
Чтобы преобразовать неквалифицированное, квалифицированное или псевдонимное имя класса в его полностью квалифицированную форму, и
Чтобы вызвать метод класса __callStatic с произвольным, ранее необъявленным именем метода.
Чтобы преобразовать имя класса в его полностью определенную форму, добавив «:: class»
Две двоеточия, за которыми следует ключевое слово «class», расположенное после имени класса, обеспечивают полное имя этого класса в виде строки. Т.е., «ClassName::class» преобразуется в полное имя «ClassName». См. (A) Руководство: классы и объекты: основы, (B) Руководство: классы и объекты: константы классов, и (C) Руководство: справочник по языку: константы
Синтаксис был принят в PHP 5.5. Смотрите: (A) RFC и (B) PHP 5.5 Новые функции
Синтаксис «:: class» полезен в пространстве имен для получения полностью определенного имени класса из его неквалифицированной или квалифицированной формы или из псевдонима его имени.
Синтаксис «:: class», кажется, работает для разрешения имен интерфейсов, а также имен классов, хотя это, похоже, не документировано источниками, указанными выше.
Внутри класса синтаксис также работает с «self:: class», как упомянуто в RFC «:: class», указанном выше.
Чтобы вызвать «__callStatic» с необъявленным именем метода
Две двоеточия можно использовать для «вызова» статического имени метода, которое класс не объявил. Например, «ClassName:: произвольный MethodName()». Это вызывает метод класса __callStatic, если класс объявил его. Он также передает __callStatic имя необъявленного метода и все аргументы, переданные необъявленному методу. Затем метод __callStatic может «динамически» выбирать, как обрабатывать вызов. В PHP это называется «перегрузкой» с помощью «магического метода» __callStatic.
Какая разница между:: (двойной двоеточие) и → (стрелкой) в PHP?
Есть два разных способа доступа к методам в PHP, но какая разница?
ОТВЕТЫ
Ответ 1
Правило состоит в том, что вызов с :: является вызовом экземпляра тогда и только тогда, когда:
Ответ 2
:: используется в статическом контексте, т.е. когда какой-либо метод или свойство объявляется как статический:
Кроме того, оператор :: (Оператор разрешения области действия, aka Paamayim Nekudotayim) используется в динамическом контексте при вызове метода/свойство родительского класса:
-> используется в динамическом контексте, т.е. когда вы имеете дело с некоторым экземпляром некоторого класса:
Ответ 3
Фактически этим символом мы можем вызвать метод класса, который является статическим и не зависит от другой инициализации.
Здесь функция doWrite() не зависит от какого-либо другого метода или переменной, и это статический метод. Вот почему мы можем вызвать этот метод этим оператором без инициализации объекта этого класса.
Test::doWrite(‘Mrinmoy’); // Output: Hello Mrinmoy.
Но если вы хотите вызвать метод write таким образом, он будет генерировать ошибку, потому что она зависит от инициализации.
Ответ 4
Оператор => используется для назначения пар ключ-значение в ассоциативном массиве. Например:
Это значение похоже в выражении foreach :
Ответ 5
Разница между статическими и инстанцированными методами и свойствами, по-видимому, является одним из самых больших препятствий для тех, кто только начинается с OOP PHP в PHP 5.
Оператор стрелки, наоборот, вызывает методы или свойства, которые ссылаются на экземпляр объекта.
Статические методы могут быть особенно полезны в объектных моделях, которые связаны с базой данных для методов создания и удаления, поскольку вы можете установить возвращаемое значение в вставленный идентификатор таблицы, а затем использовать конструктор для создания объекта с помощью идентификатора строки.
Ответ 6
Если кто-то может расшифровать, почему это так, сделайте.
Ответ 7
Оператор разрешения области (также называемый Paamayim Nekudotayim) или, проще говоря, двойное двоеточие, является токеном, который обеспечивает доступ к статическим, постоянным и переопределенным свойствам или методам класса. При ссылке на эти элементы вне определения класса используйте имя класса.
Ответ 8
Константа класса, свойство класса (статическое) и функция класса (статическое) могут иметь одно и то же имя и быть доступными через двойное двоеточие.
Что означают два двоеточия в PHP?
30 ben [2010-05-25 12:50:00]
Я не знаю, что он делает, когда у нас есть такая ситуация:
Он выглядит как путь.
5 ответов
39 Решение Chris [2010-05-25 12:52:00]
Это (как правило) для доступа к статическому методу или свойству в классе. Он назывался оператором разрешения области или Paamayim Nekudotayim (что приводит к некоторым удивительно запутывающим сообщениям об ошибках!). См. http://www.php.net/manual/en/language.oop5.paamayim-nekudotayim.php.
51 Gumbo [2010-05-25 12:52:00]
Оператором :: является оператор разрешения области. Он используется для доступа к константам классов или статическим свойствам и методам либо вне класса:
Или внутри метода класса ссылаться на тот же или родительский класс, используя self и parent :
В дополнение к ответам относительно использования PHP двух двоеточий в качестве «оператора разрешения области видимости»:
Кроме того, используется двойное двоеточие:
Чтобы преобразовать неквалифицированное, квалифицированное или псевдонимное имя класса в его полностью квалифицированную форму, и
Для вызова метода класса __callStatic.
Чтобы преобразовать имя класса в его полностью определенную форму, добавив «:: class»
Две двоеточия, за которыми следует ключевое слово «class», расположенное после имени класса, обеспечивают полное имя этого класса в виде строки. Т.е., «ClassName :: class» преобразуется в полное имя «ClassName». См. (A) Руководство: классы и объекты: основы, (B) Руководство: классы и объекты: константы классов и (C) Руководство: справочник по языку: константы
Синтаксис был принят в PHP 5.5. Смотрите: (A) RFC и (B) PHP 5.5 Новые функции
Синтаксис «:: class» полезен в пространстве имен для получения полностью определенного имени класса из его неквалифицированной или квалифицированной формы или из псевдонима его имени.
Синтаксис «:: class», по-видимому, работает для разрешения имен интерфейсов, а также имен классов, хотя это, похоже, не документировано источниками, указанными выше.
Внутри класса синтаксис также работает с «self :: class», как упомянуто в RFC «:: class», указанном выше.
Для вызова «__callStatic»
Две двоеточия могут использоваться для «вызова» статического имени метода, которое класс не объявил. Это вызывает метод класса «__callStatic», если он его объявил. Затем метод __callStatic может «динамически» выбирать, как обрабатывать вызов. В PHP это называется «перегрузкой» с помощью «магического метода» __callStatic.
использование оператора разрешения области
Константа класса, свойство класса (статическое), функция класса (статическая) могут иметь одно и то же имя и быть доступными через двойное двоеточие.