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
|
--TEST--
ReflectionClass::setStaticPropertyValue() - type constraints must be enforced
--FILE--
<?php
class Test {
public static $x;
public static int $y = 2;
}
$rc = new ReflectionClass('Test');
try {
$rc->setStaticPropertyValue("y", "foo");
} catch (TypeError $e) { echo $e->getMessage(), "\n"; }
var_dump(Test::$y);
$rc->setStaticPropertyValue("y", "21");
var_dump(Test::$y);
Test::$x =& Test::$y;
try {
$rc->setStaticPropertyValue("x", "foo");
} catch (TypeError $e) { echo $e->getMessage(), "\n"; }
var_dump(Test::$y);
$rc->setStaticPropertyValue("x", "42");
var_dump(Test::$y);
?>
--EXPECT--
Cannot assign string to property Test::$y of type int
int(2)
int(21)
Cannot assign string to reference held by property Test::$y of type int
int(21)
int(42)
|