Есть ли какая-то особенность/разница между $var и $self.var (без locals) в конструкторе класса?
andylars 25.07.2015 21:36
/ 26.07.2015 00:27
Сабж.
Недавно наступив на грабли (и наивно полагая), что:
@create[arg]
$arg[$arg]
$arg - станет public-переменной в контексте класса, где я "подхватил" эту глупость, уже не помню (казалось, я где-то видел, что-то типа: $arghash[^hash::create[$arghash]] (хотя очевидный смысл данного, был создать объект хеш в любом случае, даже если аргумент пустой), но почему-то казалось, что где-то оно работало как автоматическая декларация public-переменной.
В общем, поняв, что где-то я мог оставить public-переменную одноименной аргументу конструктора/метода, я сначала решил попробовать поступить просто:
пройтись по конструкторам, где предполагались public-переменные, которые были декларированый без указания $self, и просто заменить автоматически конкретные $var на $self.var по всему классу. Проверил замена прошла корректно (с точки зрения редактора).
Но на первом же классе (статический между прочим),
код сразу поламался, где-то в методах.
Почему, и где сейчас руки не доходят, нет времени, потом обязательно приведу все в более академический вид. И поэтому пока оставил как есть.
Но собственно сабж?
- Есть ли какая-то особенность/разница между $var и $self.var (без locals) в конструкторе класса?, andylars 25.07.2015 21:36 / 26.07.2015 00:27
- Ответ, Misha v.3 [M] 26.07.2015 00:41