Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010
Помог: 1 раз(а)
Ezi, про __go(). По-моему советуют использовать одинарное подчёркивание в названии приватных методов "_". Тогда никакая магия не испортит ваш скрипт)))
snikers987
Отправлено: 15 Февраля, 2012 - 10:13:07
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
EuGen пишет:
snikers987
Небольшой пример (я про практику): http://forum.php.su/topic.php?forum=33&topic=757
Уже читал эту статью раньше, но перечитал еще и увидел много нового чему раньше не придал значения! Позновательно, спасибо.
Кстати да, по поводу подчеркиваний хотелось бы уточнить, стоит ли всеже использовать двойное подчеркивание? или всеже лучше его заменить к примеру тройным? ___myPrivateMethod(); ?
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
Ezi
Отправлено: 15 Февраля, 2012 - 11:48:25
Частый гость
Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010
Помог: 2 раз(а)
Dezmont, вот что
EuGen пишет:
Имена методов.
- все публичные методы объявляются с самого начала и следуют названиям функций.
- все защищенные (protected) методы начинаются с
подчеркивания, следуя названиям функций
- все приватные (private) методы начинаются с
двойного подчеркивания, следуя названиям функций
я уже запутался
----- Хочешь жить - умей вертеться
EuGen
Отправлено: 15 Февраля, 2012 - 12:11:02
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Если прочесть все вместе, то становится ясно, что я рекомандовал не просто использовать двойное подчеркивание, но вдобавок к тому и следовать правилу именования функций.
Например, __get_script_process_name - ему соотвутствует и маловероятно, что в PHP появится магическая функция с таким именем. К тому же, в PHP существует не большое количество таких(то есть магических) функций.
Однако же, названия в стиле __do __work и т.п. - недопустимы, потому что они на самом деле могут быть использованы в дальнейшем в PHP как магические.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Ezi
Отправлено: 15 Февраля, 2012 - 12:17:07
Частый гость
Покинул форум
Сообщений всего: 242
Дата рег-ции: Дек. 2010
Помог: 2 раз(а)
EuGen, объясни человеко-понятно-нубном языком, в чем магия у магических функций? тоесть почему они магическими называются?
----- Хочешь жить - умей вертеться
EuGen
Отправлено: 15 Февраля, 2012 - 12:21:03
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Ezi
В том, что они вызываются при определенных условиях. И отвечают каждая за логически обоснованное действие. Например, "магия" __construct заключается в том, что когда Вы пишете
- они уже определены. Ваша задача - определять поведение в нужной для Вас (например, инициализировать свойства в том же __construct)
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
caballero
Отправлено: 15 Февраля, 2012 - 12:41:38
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
или всеже лучше его заменить к примеру тройным?
а чего не четверным?
На фига вообще подчеркивания. Если хочешь выделить какие то поля класса так любой современный редактор тебе подсветит где приватные поля и т.д.
Цитата:
а как такие магические функции самому описывать?
Прежде чем задать вопрос - поменяй слово "как" на слово "зачем".
Половина глупых вопросов отпадут сами собой.
Магическими они названы просто чтобы как нибудь назвать методы которые компилятор вызыввает автоматически при возникновении определенных условий.
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
snikers987 пишет:
Кстати да, по поводу подчеркиваний хотелось бы уточнить, стоит ли всеже использовать двойное подчеркивание? или всеже лучше его заменить к примеру тройным? ___myPrivateMethod(); ?
Обычно рекомендуют использовать для имен приватных методов и свойств префикс в виде ОДНОГО знака подчеркивания. видимо для того, чтобы визуально сразу было видно где вызывается приватный метод, а где публичный. Писаного правила по этому поводу нет, - все делают, кому как захочется. Лично я придерживаюсь данной рекомендации.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.