При объявлении членов (переменных) вы не можете назначать значения ключей ключей другим членам, это вызывает ошибку синтаксического анализа.
Например, вы думаете (не так), что $vars['ALL']
ссылается на ваш private $var
- что это не так - это также вызывает ошибку синтаксического анализа. Там нет никакого способа для PHP, чтобы знать, что, когда вы говорите:
private $var = $vars['ALL'];
, что вы на самом деле говорят: «Я хочу значение $ this-> вары [„ALL“] для назначения $ this-> вар» , по крайней мере, не так, как вы его написали. Вот почему вы делаете это изнутри функции, где вы можете легко манипулировать членами, например, вы сделали из конструктора.
Вы должны объявить участников, их видимость и установить некоторые значения по умолчанию (например, вы сделали для $var
), но вы не должны указывать их на значения других членов, это просто - неправильно и к счастью - это не работает:)
, но я не использую $ this на линии 8. (это строка 8 в примере кодека btw. Здесь это будет строка 6.) – superbly
Вам не обязательно: это подразумевается. Если вы не можете получить доступ к '$ this', вы также не можете получить доступ к какой-либо из переменных-членов. edit: На самом деле это может даже не подразумеваться: я забываю, если это правда, но PHP может не иметь того же разрешения области, что и C++ и C#. PHP часто делает необычное разрешение области, чтобы избежать двусмысленности, поэтому я остался бы не удивленным. –
Хорошо. Можно ли предположить, что переменные инициализируются только при инициализации объекта? – superbly