1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
--TEST--
Reads and writes from backing store are only cached for $this
--FILE--
<?php
class C {
public $switch;
public $prop = 42 {
get {
echo __METHOD__, "\n";
if ($this->switch) {
$other = new C();
$other->switch = false;
} else {
$other = $this;
}
var_dump($other->prop);
return 1;
}
set => $this->prop;
}
}
function test() {
$c = new C();
$c->switch = true;
var_dump($c->prop);
}
test();
test();
?>
--EXPECT--
C::$prop::get
C::$prop::get
int(42)
int(1)
int(1)
C::$prop::get
C::$prop::get
int(42)
int(1)
int(1)
|