php – 如何从类中获取常量,排除可能来自父母的所有常量?
发布时间:2020-12-13 13:05:09 所属栏目:PHP教程 来源:网络整理
导读:在第二个例子中,PDO用它的常量填充MyClass,如何过滤掉它们? class MyClass { const PARAM_1 = 1; const PARAM_2 = 2; const PARAM_3 = 4; function MyMethod() { $reflector = new ReflectionClass(__CLASS__); print_r($reflector-getConstants()); }}$myI
在第二个例子中,PDO用它的常量填充MyClass,如何过滤掉它们?
class MyClass { const PARAM_1 = 1; const PARAM_2 = 2; const PARAM_3 = 4; function MyMethod() { $reflector = new ReflectionClass(__CLASS__); print_r($reflector->getConstants()); } } $myInstance = new MyClass(); $myInstance->MyMethod(); //returns: //Array //( // [PARAM_1] => 1 // [PARAM_2] => 2 // [PARAM_3] => 4 //) class MyClassPDO extends PDO { const PARAM_1 = 1; const PARAM_2 = 2; const PARAM_3 = 4; function MyMethod() { $reflector = new ReflectionClass(__CLASS__); print_r($reflector->getConstants()); } } $myInstancePDO = new MyClassPDO('sqlite::memory:'); $myInstancePDO->MyMethod(); //Array //( // [PARAM_1] => 1 // [PARAM_2] => 2 // [PARAM_3] => 4 // [PARAM_BOOL] => 5 // [PARAM_NULL] => 0 // [PARAM_INT] => 1 // [PARAM_STR] => 2 // [PARAM_LOB] => 3 // [PARAM_STMT] => 4 // [PARAM_INPUT_OUTPUT] => -2147483648 // [PARAM_EVT_ALLOC] => 0 // [PARAM_EVT_FREE] => 1 // [PARAM_EVT_EXEC_PRE] => 2 //....and so on
据我所知
function MyMethod() { $reflector = new ReflectionClass(__CLASS__); print_r(array_diff($reflector->getConstants(),$reflector->getParentClass()->getConstants())); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |