/
vshmidt
/
php
Обзор
Документация
Войти
/
vshmidt
/
php
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
ext/reflection/tests/ReflectionProperty_getValue_error.phpt
65 строк
1 KB
Marco Pivetta
Make ReflectionProperty/Method always accessible
08 июл 2021, 11:55
08 июл 2021, 11:55
6e16e1d
Код
Авторство
О чём код?
--TEST-- Test ReflectionProperty::getValue() errors. --FILE-- <?php class TestClass { public $pub; public $pub2 = 5; static public $stat = "static property"; protected $prot = 4; private $priv = "keepOut"; } class AnotherClass { } $instance = new TestClass(); $invalidInstance = new AnotherClass(); $propInfo = new ReflectionProperty('TestClass', 'pub2'); echo "\nInstance without property:\n"; $propInfo = new ReflectionProperty('TestClass', 'stat'); echo "\nStatic property / too many args:\n"; try { var_dump($propInfo->getValue($instance, true)); } catch (TypeError $e) { echo $e->getMessage(), "\n"; } echo "\nProtected property:\n"; $propInfo = new ReflectionProperty('TestClass', 'prot'); var_dump($propInfo->getValue($instance)); echo "\n\nInvalid instance:\n"; $propInfo = new ReflectionProperty('TestClass', 'pub2'); try { var_dump($propInfo->getValue($invalidInstance)); } catch (ReflectionException $e) { echo $e->getMessage(); } echo "\n\nMissing instance:\n"; try { var_dump($propInfo->getValue()); } catch (TypeError $e) { echo $e->getMessage(); } ?> --EXPECT-- Instance without property: Static property / too many args: ReflectionProperty::getValue() expects at most 1 argument, 2 given Protected property: int(4) Invalid instance: Given object is not an instance of the class this property was declared in Missing instance: ReflectionProperty::getValue(): Argument #1 ($object) must be provided for instance properties