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

php – 在oop中设置全局变量的最佳方法?

发布时间:2020-12-13 22:35:55 所属栏目:PHP教程 来源:网络整理
导读:我很难找到答案,我确信它在我面前,但我不能把它放在一起. //Global Variables global $GLOBAL; $GLOBAL['myPluginPath'] = dirname( __FILE__ ); //Main Object class My_Class { public function __construct() { // Initialize Settings require_once $GLO
我很难找到答案,我确信它在我面前,但我不能把它放在一起.
//Global Variables
    global $GLOBAL;
    $GLOBAL['myPluginPath'] = dirname( __FILE__ );


    //Main Object   
    class My_Class {

            public function __construct() {

                    // Initialize Settings
                    require_once $GLOBAL['myPluginPath'] . '/settings.php';
                    $My_Settings = new My_Settings();

            } 
     }

我想使用一个变量,所以我的代码感觉更有条理,我觉得我可以更好地读取我的代码,当这样定义路径时,它可以更容易地更改变量,以便它在整个代码中应用,如果需要的话.

我可以通过在我的方法中编写变量来使变量工作.

public function WhatEverFunc() {
        global $GLOBAL
        require_once $GLOBAL['myPluginPath'] . '/settings.php'; 
   }

这里的主要问题是,我想知道这是不好的做法,如果不是有更好的方法,那么必须在每个方法中定义全局$GLOBAL.如果这是不好的做法,你能告诉我良好的做法吗?

还有一件我真正好奇的事情.在主__construct中你看到我没有使用全局$GLOBAL,因为它没有它,但在require_once文件里面是另一个类,它的方法必须使用全局$GLOBAL.希望有人可以解释一下.

我想有些人说这是不好的做法.我读到有一个单身模式(不良做法)和一个全局模式.不确定我上面做了什么构成,我只是有点迷失在我应该做的事情上我想要实现的目标.

你为什么不用 $GLOBALS?您甚至不需要使用全局关键字.

The primary question here,I am wondering if this is bad practice

好吧,我相信大多数人会说全球状态是不好的做法,因为管理或进行单元测试更难.大多数人会建议你使用“依赖注入”而不是依赖于全局状态,你需要直接注入类需要的东西.

(编辑:李大同)

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

    推荐文章
      热点阅读