检查变量是公共php

时间:2011-09-07 18:00:03

标签: php variables

我想检查类中的局部变量是公共变量还是私有变量。 原因是创建这样的函数:

function ToArray() {
  $arr = array();
  foreach($this as $key => $val) {
    $arr[$key] = $val;
  }
  return $arr;
}

此函数也返回私有字段,我不希望这样。我怎样才能在这里获得公共变量?

3 个答案:

答案 0 :(得分:3)

来自the PHP documentation

$foo = new Foo();

$reflect = new ReflectionClass($foo);
$props   = $reflect->getProperties(ReflectionProperty::IS_PUBLIC);

foreach ($props as $prop) {
    print $prop->getName() . "\n";
}

var_dump($props);

答案 1 :(得分:0)

确保遵循一些使用私有变量的命名约定(例如我将它们添加到_之前)

然后只返回那些在其键的开头有_的变量。

答案 2 :(得分:0)

要获取所有公共属性的列表,请调用get_object_vars()

(提示:由对象本身调用它将返回所有属性。)