我想这样做:
class A {
public static $var = 'foo';
}
class B {
private $a;
public function __construct($a) {
$this->a = $a;
}
public function f() {
echo $this->a::$var; // <---- ERROR
echo get_class($this->a)::$var; // <---- ERROR
// WORKING but awful
$a = $this->a;
echo $a::$var;
}
}
$b = new B(new A());
$b->f();
请注意,我不知道它$a
是一个实例A
还是另一个类,我只知道它有一个静态$var
成员。所以,不幸的是,我不能使用A::$var
inside f
。
有谁知道是否有使用 PHP 5.3+ 的单表达式语法来执行此操作?