加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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()));
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读