Что означает двойное двоеточие в php

Что означают два двоеточия в 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.

использование оператора разрешения области

Константа класса, свойство класса (статическое), функция класса (статическая) могут иметь одно и то же имя и быть доступными через двойное двоеточие.

Источник

Справочник по обустройству дома и дачи
Adblock
detector