Что означает двойное двоеточие в 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?

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

Он выглядит как путь.

ОТВЕТЫ

Ответ 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 ответов

Возможный Дубликат : Понимание Символов В Ruby Что такое оператор двоеточия в Ruby? Это какой-то код, который дает мне учебник Rails, который я читаю. class Post true validates :title, :presence =>.

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

Чтобы дополнить ответы относительно использования PHP двух двоеточий в качестве «scope resolution operator» :

Кроме того, используется двойное двоеточие:

Чтобы преобразовать неквалифицированное, квалифицированное или псевдонимное имя класса в его полную форму, и

Чтобы вызвать метод «__callStatic» класса с произвольным, ранее не объявленным именем метода.

Чтобы преобразовать имя класса в его полную форму, добавьте «::class»

Синтаксис был принят в PHP 5.5. См.: (A) RFC и (B) PHP 5.5 Новые функции

Синтаксис «::class» полезен в пространстве имен для получения полного имени класса из его неквалифицированной или квалифицированной формы или из псевдонима его имени.

Синтаксис «::class», по-видимому, работает для разрешения имен интерфейсов, а также имен классов, хотя это, по-видимому, не задокументировано источниками, указанными выше.

Внутри класса синтаксис также работает с «self::class», как упоминалось в «::class» RFC, связанном выше.

Чтобы вызвать «__callStatic» с необъявленным именем метода

См. дополнительное обсуждение StackOverflow

Я наткнулся на следующее css: font: 300 24px/30px Roboto, sans-serif; Что означают два размера шрифта (24px/30px)? я привык видеть только один размер.

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

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

Похожие вопросы:

Я познакомился с этим кодом и никак не мог понять, что означают эти два вопросительных знака? определение этой переменной выглядит следующим образом: var featureImageSizeOptional: CGSize? Код.

Что означают операторы =& / &= в PHP? Где я могу прочитать информацию о них? Поиск в Google не помогает.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *