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
|
--TEST--
Recursion behavior of property hooks
--FILE--
<?php
class Test {
public int $prop {
get { return $this->prop * 2; }
set { $this->prop = $value * 2; }
}
// Edge-case where recursion happens via isset().
public int $prop2 {
get { return isset($this->prop2); }
set { }
}
}
$test = new Test;
$test->prop = 10;
var_dump($test->prop);
var_dump(isset($test->prop));
var_dump(isset($test->prop2));
var_dump($test);
?>
--EXPECT--
int(40)
bool(true)
bool(true)
object(Test)#1 (1) {
["prop"]=>
int(20)
["prop2"]=>
uninitialized(int)
}
|