mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00

RFC: https://wiki.php.net/rfc/property-hooks Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
45 lines
687 B
PHP
45 lines
687 B
PHP
--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)
|