有这两个班级:
class run {
public static $where = "there";
}
class there {
public static $place_name = "A beautiful place..";
}
要获得place_name,我可以这样做:
$place = "there";
echo $place::$place_name;
但我可能想在某些时候做这样的事情......:
echo {$run::$where}::$place_name;
显然,最后一个片段不起作用。 有没有办法让它发挥作用?
答案 0 :(得分:0)
如果您不想使用变量(正如您在评论中所说),请三思而后行。变量在PHP中非常酷,速度非常快,而且只需要处理其有限解析器所需的粘合剂(据说它可以使PHP非常快)。那么为什么不在这里使用变量呢?输入和快速完成很容易。
如果您不想要变量,并且我们已经发现PHP的语法有限,您至少可以编写一个使用PHP 5.4+的单线程来实现您所需要的:
echo (new ReflectionClass((new ReflectionClass($run))->getStaticPropertyValue('where')))->getStaticPropertyValue('place_name');
然后最终应该看到使用变量更舒服:
echo (unset) $place = $run::$where, $place::$place_name;