奇怪的是,我的研究并未提出以下确切方案:
$someVar = $this->StaticClassName::$staticClassProperty;
php 7. *愉快地访问该属性,但5.6。*(在这种情况下为.11)因错误而掉线:
意外的'::'(T_PAAMAYIM_NEKUDOTAYIM)
是的,我尝试过每一个$ {permutation} ::我都能想到。
有很多这样的复合表达式在PHP 5中不起作用。通常的解决方案是将其分解为多个表达式,您可以在此处进行操作:
$className = $this->StaticClassName;
$someVar = $className::$staticClassProperty;
Run Code Online (Sandbox Code Playgroud)
这对PHP 5和PHP 7均适用。
好吧,这里至少有一种解决方案可以满足您的需求:
<?php
class MyClass {
public $childClass;
public function __construct() {
$this->childClass = new ChildClass();
}
}
class ChildClass {
public static $foo = 'bar';
public function getFoo() {
return static::$foo;
}
}
$obj = new MyClass();
echo $obj->childClass->getFoo();
?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1471 次 |
| 最近记录: |