<?php
class A {
protected $_vars = array();
public function __get($var) {
echo "__get called\n";
return $this->_vars[$var];
}
public function __set($var, $val) {
echo "__set called\n";
$this->_vars[$var] = $val;
}
public function __isset($var) {
echo "__isset called\n";
return isset($this->_vars[$var]);
}
}
$o = new A();
$o->a = 1;
$o->b = 2;
$c = $o->b = 3;
var_dump($c); //3
var_dump($o->b); //3
var_dump(empty($o->b));
- Output for 5.5.0 - 5.5.36, 5.6.0 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.25, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- __set called
__set called
__set called
int(3)
__get called
int(3)
__isset called
__get called
bool(false)
preferences:
156.92 ms | 408 KiB | 5 Q