📄 006.phpt
字号:
--TEST--ReflectionClass::[gs]etStaticPropertyValue--SKIPIF--<?php extension_loaded('reflection') or die('skip'); ?>--FILE--<?php/* ReflectionClass cannot touch protected or private static properties *//* ReflectionClass cannot create or delete static properties */Class Test{ static public $pub = 'pub'; static protected $pro = 'pro'; static private $pri = 'pri'; static function testing() { $ref = new ReflectionClass('Test'); foreach(array('pub', 'pro', 'pri') as $name) { try { var_dump($ref->getStaticPropertyValue($name)); var_dump($ref->getStaticPropertyValue($name)); $ref->setStaticPropertyValue($name, 'updated'); var_dump($ref->getStaticPropertyValue($name)); } catch(Exception $e) { echo "EXCEPTION\n"; } } }}Class TestDerived extends Test{// static public $pub = 'pub';// static protected $pro = 'pro'; static private $pri = 'pri'; static function testing() { $ref = new ReflectionClass('Test'); foreach(array('pub', 'pro', 'pri') as $name) { try { var_dump($ref->getStaticPropertyValue($name)); var_dump($ref->getStaticPropertyValue($name)); $ref->setStaticPropertyValue($name, 'updated'); var_dump($ref->getStaticPropertyValue($name)); } catch(Exception $e) { echo "EXCEPTION\n"; } } }}$ref = new ReflectionClass('Test');foreach(array('pub', 'pro', 'pri') as $name){ try { var_dump($ref->getStaticPropertyValue($name)); var_dump($ref->getStaticPropertyValue($name)); $ref->setStaticPropertyValue($name, 'updated'); var_dump($ref->getStaticPropertyValue($name)); } catch(Exception $e) { echo "EXCEPTION\n"; }}Test::testing();TestDerived::testing();?>===DONE===<?php exit(0); ?>--EXPECT--string(3) "pub"string(3) "pub"string(7) "updated"EXCEPTIONEXCEPTIONstring(7) "updated"string(7) "updated"string(7) "updated"EXCEPTIONEXCEPTIONstring(7) "updated"string(7) "updated"string(7) "updated"EXCEPTIONEXCEPTION===DONE===--UEXPECT--unicode(3) "pub"unicode(3) "pub"unicode(7) "updated"EXCEPTIONEXCEPTIONunicode(7) "updated"unicode(7) "updated"unicode(7) "updated"EXCEPTIONEXCEPTIONunicode(7) "updated"unicode(7) "updated"unicode(7) "updated"EXCEPTIONEXCEPTION===DONE===
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -