获取实例的静态属性

2022-08-30 20:58:10

如果我在PHP中有一个实例,那么获得该实例的静态属性(“类变量”)的最简单方法是什么?

$classvars=get_class_vars(get_class($thing));
$property=$classvars['property'];

听起来真的过分了。我会期待

$thing::property

$thing->property

编辑:这是一个老问题。在较新的PHP中,有更明显的方法可以做到这一点,请在下面搜索。


答案 1

您需要先查找类名:

$class = get_class($thing);
$class::$property

当然,$property必须定义为和。staticpublic


答案 2

从类实例内部,您可以简单地使用self::...

class Person {
  public static $name = 'Joe';
  public function iam() {
    echo 'My name is ' . self::$name;
  }
}

$me = new Person();
$me->iam(); // displays "My name is Joe"

推荐