[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Двоеточие вместо тире со скобкой в ООП
alex12060
Как сделать такое:

$foo::test();

Не знаю почему, но мне такой вид записи нравится)

Это что-то вроде унаследования классов, мм, в смысле класс внутри класса. Подскажите, что да как, и желательно с примерами) Я просто не знаю, как это обозвать, тогда погуглил бы)



Спустя 1 минута, 36 секунд (25.01.2011 - 20:24) twin написал(а):
Статические свойства и методы гугли. Тут глянь за одно.

Спустя 28 минут, 15 секунд (25.01.2011 - 20:53) fallow написал(а):
:: - оператор разрешения области видимости, с помощью него можно обращаться к public static членам либо методам напрямую без создания обьекта.

Спустя 2 часа, 3 минуты, 11 секунд (25.01.2011 - 22:56) linker написал(а):
В пыхе 5.3.х такое работает, 5.2.х - нет. Сие означает - доступ к статическим методам, полям, константам класса. Статические поля, методы принадлежат классу, а не объектам данного класса.

Спустя 1 минута, 53 секунды (25.01.2011 - 22:58) Basili4 написал(а):
linker
хочешь сказать что в пыхе младше 5.3 нет статичных методов ??? о_О

Спустя 55 секунд (25.01.2011 - 22:59) linker написал(а):
Вот такая запись $foo::test(); возможно только в 5.3.х и то я могу ошибаться, у меня сейчас 5.3.3

Спустя 2 минуты, 53 секунды (25.01.2011 - 23:02) twin написал(а):
Спокойно работает на 5.2.4

Спустя 2 минуты, 21 секунда (25.01.2011 - 23:04) linker написал(а):
5.2.10 - не работает - Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM

Спустя 5 минут, 18 секунд (25.01.2011 - 23:09) Basili4 написал(а):
linker
а ты метод объявил как static ???

Спустя 3 минуты, 41 секунда (25.01.2011 - 23:13) linker написал(а):
Basili4
Естественно, я ж не зеленый нуб. 5.1.2 - тоже не работает. Жаль негде мне проверить на 5.3.0, 5.3.2.

Спустя 13 минут, 36 секунд (25.01.2011 - 23:26) T1grOK написал(а):
У меня на 5.2.3 работает без вопросов

Спустя 34 минуты, 33 секунды (26.01.2011 - 00:01) glock18 написал(а):
Не работает в 5.2.x и ранее. Глаза разуйте: laugh.gif laugh.gif

$foo::test();

позднее статическое связывание реализовано только в ветке 5.3.x, так что linker прав

ЗЫ: запись Foo::test() пашет в 5.0.х, кажется, даже или с 5.1.х.

ТС, мне кажется, просто всех в заблуждение ввел изначально тем, что скорее всего доллар поставил по незнанию smile.gif

Спустя 26 минут, 11 секунд (26.01.2011 - 00:27) linker написал(а):
Статические методы появились с самой первой версией пятого PHP.

Спустя 2 минуты, 35 секунд (26.01.2011 - 00:30) Basili4 написал(а):
Цитата (linker @ 26.01.2011 - 01:27)
Статические методы появились с самой первой версией пятого PHP.


о это больше похоже на правду

Спустя 1 минута, 24 секунды (26.01.2011 - 00:31) linker написал(а):
static method и last static binding разные понятия, короче придет ТС и все рассудит.

Спустя 1 день, 12 часов, 44 минуты, 14 секунд (27.01.2011 - 13:15) ihatemac написал(а):

Спустя 19 дней, 3 часа, 43 минуты, 18 секунд (18.02.2011 - 16:59) alex12060 написал(а):
Да, прошу прощения)

Доллар будет лишний здесь)

Спустя 1 день, 5 часов, 34 секунды (19.02.2011 - 21:59) gidrosoldat написал(а):
Цитата (fallow @ 25.01.2011 - 17:53)
:: - оператор разрешения области видимости, с помощью него можно обращаться к public static членам либо методам напрямую без создания обьекта.

Мне кажется не только к статическим. В связке с parent и self методы и свойства не обязательно должны быть статическими. Или я не прав?

Спустя 1 день, 12 часов, 25 минут, 55 секунд (21.02.2011 - 10:25) linker написал(а):
В PHP 5.3.x обязаны. Единственно исключение для parent::method().

Спустя 9 часов, 21 минута, 36 секунд (21.02.2011 - 19:47) gidrosoldat написал(а):
Забавно, что сам ПХП использует такой синтаксис в описании ошибок.
Например, если обратиться к неопределенному методу method() в классе Class, то он выдаст:

Fatal error: Call to undefined method Class::method()

Причем по всем фунциям, не только по статическим. Вам не кажется, что такие описания ошибок могут попросту запутать? )

Спустя 13 часов, 48 минут, 34 секунды (22.02.2011 - 09:35) linker написал(а):
Методы описываются в классе, а не в объектах. В данном случае речь идет не в принадлежности чему-то, а в расположении описания. Поэтому PHP правильно выдает ошибки.

Спустя 1 день, 6 минут, 16 секунд (23.02.2011 - 09:42) gidrosoldat написал(а):
С моей (нубовской) колокольни, видиться так:
Fatal error: Call to undefined method method() in Class
Так все ясно, и двоеточия уж точно никого в заблуждения не введут ))

Спустя 1 день, 18 минут, 31 секунда (24.02.2011 - 10:00) linker написал(а):
gidrosoldat
smile.gif Ну скажи это разрабам PHP smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.