Работа с необявленными переменными класса

dimitrius

Новичок
В коде повсеместно встречается обращение к не объявленным переменным класса $this->var = 123 и потом $sameVar = $this->var. В классах родителях таких переменных нет. Где почитать об этом? как ведут себя такие переменные? в мануале не заметил.
 

dimitrius

Новичок
Не, это я знаю. Никакие волшебные методы не используются. вопрос рассматривали здесь http://forum.php.su/topic.php?forum=71&topic=4677. Но четкого поведения и ссылок на документацию там нет. Еще нашел здесь http://stackoverflow.com/questions/12609986/can-a-php-class-declare-its-attributes-dynamically но тоже самое
 
Последнее редактирование:

hell0w0rd

Продвинутый новичок
Если переменная не объявлена - она объявляется публичной. Можно было-бы методом тыка выяснить, без манов)
PHP:
$ cat test.php
<?php

class test{}

$t = new test;
$t->var = 'foo';

var_dump($t);

$ php test.php
class test#1 (1) {
  public $var =>
  string(3) "foo"
}
 
  • Like
Реакции: WMix

dimitrius

Новичок
Если переменная не объявлена - она объявляется публичной. Можно было-бы методом тыка выяснить, без манов)
ага роскосмос и ракету методом тыка запускал)))))))))) в постах, что я сбросил и до вас мне это сказали, и метод тыка я проверил после того как перелопатил 6 файлов с классами родителями. Вы все возможные случаи тыкать будете? практика это хорошо, это здорово, но на нее надо время, и мне бы не хотелось делать то, что неизвестно как себя в разных случаях будет вести.
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
как решение проблемы, есть __get и __set можешь пустить в лог если переменная не обьявлена к примеру, после ручками проставить.
 

WMix

герр M:)ller
Партнер клуба
Вурдалак
хочешь сказать что нотис и так появится?
 

Вурдалак

Продвинутый новичок
WMix, нет, извини, это self pwn, это ж свойства, с ними нормально нельзя, да.
 
Сверху