class Foo
{
public function testIt()
{
return $this->test;
}
}
$ab = new Foo;
$ab->test = 4;
echo $ab->testIt();
Не могу понять почему этот код не вызывает ошибку, ведь свойство $test не заявлено в классе.
Хотелось бы найти этому объяснение ;)
class Foo
{
public function testIt()
{
return $this->test;
}
}
$ab = new Foo;
$ab->test = 4;
echo $ab->testIt();
$ab->test = 4;
Цитата (WinterSilence @ 30.03.2014 - 10:14) |
Не могу понять почему этот код не вызывает ошибку, ведь свойство $test не заявлено в классе. |
class Foo
{
public function testIt()
{
return $this->test;
}
}
$ab = new Foo;
//$ab->test = 4;
echo $ab->testIt();
Цитата (WinterSilence @ 30.03.2014 - 10:56) |
есть же еще __get(), __set() и как оно вместе сосуществует тоже мало понятно |
Цитата (WinterSilence @ 30.03.2014 - 10:56) |
@killer8080 разница между notice и error как бэ большая |
$o = new stdClass;
$a = array();
$o->foo = 'foo';
echo $o->foo; // foo
echo $o->bar; // Notice: Undefined property: stdClass::$bar in...
$a['foo'] = 'foo';
echo $a['foo']; // foo
echo $a['bar']; // Notice: Undefined index: bar in...
Цитата (WinterSilence @ 30.03.2014 - 11:08) |
В общем получается чтобы "джуниоры" явно не писали абы как, надо наследовать классы от "пустышки" с __get(), __set(). |
Цитата (WinterSilence @ 30.03.2014 - 10:56) |
разница между notice и error как бэ большая |
Цитата (WinterSilence @ 30.03.2014 - 11:15) |
@killer8080 " Массивы ведут себя так же" бывают и фиксированной длины если что) |