Ответ
Misha v.3 11.11.2014 12:54
/ 11.11.2014 12:56
вы уверены, что никогда не захотите обращаться с полям напрямую? да? и вы помните про хэши, файлы и другие системные объекты?
и уверены, что ни одному из используемых вами классов не потребуется прямой доступ к полям?
и помните, что доступ через геттеры всегда медленнее (внутри как минимум дополнительный call)?
и хотите ещё большего замедления всего и всегда, т.к. при каждом обращении у переменной надо будет как минимум проверить содержимое предлагаемой системной переменной и возможно ещё и контекст вызова?
что касается меня, то перечисленное выше количество минусов перекрывает возможное количество плюсов. если уж делать, то именно модификаторы доступа к переменным или хотя-бы опцию, которую можно будет задавать определённым классам, а не глобальную опцию.
- Не получается изолировать поля/перменные, чтобы был доступ только через свойства объекта но не напрямую. Получается либо-либо., AndySobb 07.11.2014 18:21
- Ответ, MoKo 07.11.2014 21:07
- А это вообще отвал башки => $myobj[^myclass::create[$myhash] $.property1[value1] ..., Andrey 08.11.2014 00:37
- Ответ, MoKo 08.11.2014 14:36
- Но вообще по ощущению не хватает именно локальных переменных в рамках класса/объекта но доступного между методами и обработчиками свойств. Есть ли весомые основания для их отсутствия. Добавить к @OPTIONS class_locals напримэр (-), AndySobb 08.11.2014 00:01
- Ответ, MoKo 08.11.2014 14:58
- Вообще конкретно это не критично, это все в рамках изучения тонкостей, проще просто отбить служебные переменные каким-то символом, чтобы не зацепить (-), AndySobb 07.11.2014 23:57
- $caller уже попробовал - мне понравилось :) можно делать интересные рекурсии. (-), AndySobb 07.11.2014 23:49
- Не совсем понял обход с ^reflection:uid[$self] - можно на примере?, AndySobb 07.11.2014 23:44