Я пытался найти последовательность, в которой магические методы вызываются в PHP. Поэтому была написана очень простая программа
class testme
{
public $var1;
/*function __construct()
{
echo'<br/> Constructor called';
}*/
public function __set($name, $value)
{
echo'<br/> You are in sssset function';
}
public function __call($method,$arg)
{
echo '<br/> call method';
}
public function __get($name)
{
echo'<br/> You are in get function';
}
public function __isset($name)
{
echo'<br/> You are in isset function';
}
public function __unset($name)
{
echo'<br/> You are in unset function';
}
function __destruct() {
print "<br/>Destroying " . $this->name . "\n";
}
}
$obj = new testme;
$obj->var1=5;
. Ожидаемый результат был
You are in set function
Destroying
Получение:
You are in get function
Destroying
$ obj-> var1 = 5
Здесь я устанавливаю значение для класса var, тогда почему он вызывает __ get
. Что здесь не так?