我在全局范围上有一个名为${SYSTEM}的变量,其中SYSTEM是一个定义的常量.我有很多类的函数需要访问这个变量,我发现它很烦人地声明全局${SYSTEM};每一次.
我尝试声明一个类变量:public ${SYSTEM} = $GLOBALS [SYSTEM];但这会导致语法错误,因为我有另一个类以这种方式声明类变量,似乎工作正常.我唯一可以想到的是,常数没有被认可.
我已经设法使用一个构造函数,但是在寻求一个更简单的解决方案之前.
编辑
全局${SYSTEM}变量是一个数组,其中有很多其他子数组.不幸的是,似乎没有办法绕过使用构造函数…
好的,希望我有你想要实现的要点
原文链接:https://www.f2er.com/php/139641.html<?PHP // the global array you want to access $GLOBALS['uname'] = array('kernel-name' => 'Linux','kernel-release' => '2.6.27-11-generic','machine' => 'i686'); // the defined constant used to reference the global var define(_SYSTEM_,'uname'); class Foo { // a method where you'd liked to access the global var public function bar() { print_r($this->{_SYSTEM_}); } // the magic happens here using PHP5 overloading public function __get($d) { return $GLOBALS[$d]; } } $foo = new Foo; $foo->bar(); ?>