parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

Vint 30.04.2011 15:24

Надо тогда доку поправить, сейчас там заблуждение:
Так, указанная опция locals автоматически объявит локальными все переменные во всех методах определяемого класса. Если она указана, то для обращения к полям объекта или класса необходимо пользоваться системной переменной self.
и
Если в методе явно объявить локальную переменную locals, это будет равносильно объявлению всех переменных, используемых в нем локальными.
Для обращения к переменных класса или объекта в этом случае необходимо использовать self.
Твой ответ про такое поведение locals для меня не новость, просто в очередной раз наткнулся и решил высказаться.

В идеале, при locals обращение к любым полям объекта/класса и даже вызов методов класса должен быть в виде: $self.field, ^self.method[].