加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 为一个类中的每个函数创建一个全局变量

发布时间:2020-12-13 14:02:40 所属栏目:PHP教程 来源:网络整理
导读:我在全局范围上有一个名为${SYSTEM}的变量,其中SYSTEM是一个定义的常量.我有很多类的函数需要访问这个变量,我发现它很烦人地声明全局${SYSTEM};每一次. 我尝试声明一个类变量:public ${SYSTEM} = $GLOBALS [SYSTEM];但这会导致语法错误,因为我有另一个类以
我在全局范围上有一个名为${SYSTEM}的变量,其中SYSTEM是一个定义的常量.我有很多类的函数需要访问这个变量,我发现它很烦人地声明全局${SYSTEM};每一次.

我尝试声明一个类变量:public ${SYSTEM} = $GLOBALS [SYSTEM];但这会导致语法错误,因为我有另一个类以这种方式声明类变量,似乎工作正常.我唯一可以想到的是,常数没有被认可.

我已经设法使用一个构造函数,但是在寻求一个更简单的解决方案之前.

编辑
全局${SYSTEM}变量是一个数组,其中有很多其他子数组.不幸的是,似乎没有办法绕过使用构造函数…

好的,希望我有你想要实现的要点
<?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();

?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读