无法从类构造函数中访问全局变量

托米斯拉夫·尼科里奇(​​Tomislav Nikolic)

好吧,所以我试图简单地检查构造数组中是否有东西,但似乎根本不起作用...

    $DB_VALID = array("mysql");

    class DB {
        function __construct($conn) {
            if(in_array($conn,$DB_VALID)) {
                echo "exists!";
            }
            else {
                echo "doesnt exist";
            }
        }
    }

现在,由于构造体在类内部,如果我将其转储,我将得到说为NULL的结果,但是如果将其转储到构造体之外,我将简单地得到真实的结果...

用法

$conn = new DB("mysql");

结果?in_array返回false

DfKimera

该变量$DB_VALID__construction功能范围内不存在

推荐的解决方案是将您移至$DB_VALID内部的静态变量DB,如下所示:

class DB {
    static $DB_VALID = array("mysql");

    function __construct($conn) {
        if(in_array($conn,self::$DB_VALID)) {
            echo "exists!";
        }
        else {
            echo "doesnt exist";
        }
    }
}

您以后可以通过将其引用为来访问代码其他部分中的该数组DB::$DB_VALID

但是,如果必须保留全局变量并从中访问它__construct,则可以使用global关键字将其带入本地范围,如下所示:

$DB_VALID = array("mysql");

class DB {
    function __construct($conn) {
        global $DB_VALID; // Brings the global variable to local scope
        if(in_array($conn,$DB_VALID)) {
            echo "exists!";
        }
        else {
            echo "doesnt exist";
        }
    }
}

但是,请考虑将来的第一个解决方案,因为使用全局变量是使应用程序随其发展而中断的简便方法。

编辑:正如您在评论中提到的那样,您的限制是您现在正在加载脚本的顺序,您还应该真正研究类自动加载和名称空间,因为您的项目将变得越来越复杂且难以管理(请参阅sitepoint.com)。 / autoloading-and-the-psr-0-标准)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Python中的类函数访问全局变量

来自分类Dev

函数访问全局变量

来自分类Dev

PHP-类内部的全局变量-在内部函数中访问

来自分类Dev

无法在函数内部访问JavaScript全局变量

来自分类Dev

在CSharpScript中的脚本化类中访问全局变量

来自分类Dev

Angular 2“ this”无法访问嵌套函数中的全局变量

来自分类Dev

在C / C ++程序中,可以定义某些函数无法访问的全局变量吗?

来自分类Dev

为什么在函数中无法访问我的全局变量?

来自分类Dev

除初始化外,无法在函数中访问全局变量的值

来自分类Dev

PHP无法将全局变量导入到类内部的函数中

来自分类Dev

如何在r函数中访问全局变量

来自分类Dev

创建其构造函数引用全局变量的类的全局实例时,c ++程序崩溃

来自分类Dev

无法访问打字稿中的全局变量

来自分类Dev

无法从 Angular 中的 JQuery on() 方法访问全局变量

来自分类Dev

PyQt4 使用类中函数的全局变量

来自分类Dev

类函数内部的函数全局变量

来自分类Dev

php:访问构造函数中的类变量

来自分类Dev

如何从类方法访问全局变量

来自分类Dev

无法在 addeventListener 函数中更新全局变量

来自分类Dev

Javascript:匿名函数,访问全局变量

来自分类Dev

Python:导入的函数访问全局变量

来自分类Dev

访问在函数内部定义的全局变量

来自分类Dev

luabind:无法访问全局变量

来自分类Dev

jquery全局变量无法从外部访问

来自分类Dev

类函数内的Javascript全局变量

来自分类Dev

访问变量从类构造函数到python中的类函数

来自分类Dev

无法访问PHP中的全局变量-“致命错误:在非对象上调用成员函数query()”

来自分类Dev

无法修改函数内部的全局变量

来自分类Dev

函数无法识别全局变量

Related 相关文章

  1. 1

    从Python中的类函数访问全局变量

  2. 2

    函数访问全局变量

  3. 3

    PHP-类内部的全局变量-在内部函数中访问

  4. 4

    无法在函数内部访问JavaScript全局变量

  5. 5

    在CSharpScript中的脚本化类中访问全局变量

  6. 6

    Angular 2“ this”无法访问嵌套函数中的全局变量

  7. 7

    在C / C ++程序中,可以定义某些函数无法访问的全局变量吗?

  8. 8

    为什么在函数中无法访问我的全局变量?

  9. 9

    除初始化外,无法在函数中访问全局变量的值

  10. 10

    PHP无法将全局变量导入到类内部的函数中

  11. 11

    如何在r函数中访问全局变量

  12. 12

    创建其构造函数引用全局变量的类的全局实例时,c ++程序崩溃

  13. 13

    无法访问打字稿中的全局变量

  14. 14

    无法从 Angular 中的 JQuery on() 方法访问全局变量

  15. 15

    PyQt4 使用类中函数的全局变量

  16. 16

    类函数内部的函数全局变量

  17. 17

    php:访问构造函数中的类变量

  18. 18

    如何从类方法访问全局变量

  19. 19

    无法在 addeventListener 函数中更新全局变量

  20. 20

    Javascript:匿名函数,访问全局变量

  21. 21

    Python:导入的函数访问全局变量

  22. 22

    访问在函数内部定义的全局变量

  23. 23

    luabind:无法访问全局变量

  24. 24

    jquery全局变量无法从外部访问

  25. 25

    类函数内的Javascript全局变量

  26. 26

    访问变量从类构造函数到python中的类函数

  27. 27

    无法访问PHP中的全局变量-“致命错误:在非对象上调用成员函数query()”

  28. 28

    无法修改函数内部的全局变量

  29. 29

    函数无法识别全局变量

热门标签

归档