为什么不能访问此全局变量?

我当然尝试了一下$GLOBALS,但仍然没有成功。我的语法正确吗?我的理解是,这$DB_USER是在全球范围内。

<?php
    $DB_USER = 'foo';
    class Database
    {
        // this does not work
        private $DB_USER =              $GLOBALS['DB_USER'];
        private $DB_PASS =              'foob';
        private $DB_DRIVER =            'foob_foob';
        // ...
迈克·埃弗哈特

您是$DB_USER从类方法内部调用的,这意味着您实际上是在本地作用域(在类内)调用变量。要解决此问题,只需告诉PHP您正在通过global $DB_USER在将要使用全局变量的方法内部添加(或使用构造函数将其添加到类范围中)来寻找全局变量

class Database
{  
    private $DB_USER =              '';
    private $DB_PASS =              'foob';
    private $DB_DRIVER =            'foob_foob';
    // snip


   // Method 1: Add the variable to the class scope with the constructor        
   public function __construct() 
   {
      global $DB_USER;
      $this->DB_USER = $DB_USER;
   }


   // Method 2: tell PHP that you want the global variable in your methods
   public function foo() 
   {
      $global $DB_USER;
      ...
    }

使用方法1,您现在可以调用$this->DB_USER而不是$GLOBALS['DB_USER']

使用方法2,您将其添加global $DB_USER到每个方法,然后仅使用$DB_USER

有关更多信息,请参见http://php.net/manual/zh/language.variables.scope.php

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我不能访问该全局变量?

来自分类Dev

为什么我不能访问全局变量中的值

来自分类Dev

为什么不能删除全局变量?

来自分类Dev

为什么我不能增加全局变量

来自分类Dev

为什么在调试时全局变量“不可访问”?

来自分类Dev

为什么这个变量不是全局变量(不能在函数中使用)?

来自分类Dev

为什么构造函数中的全局变量和参数变量不能具有相同的名称?

来自分类常见问题

为什么全局变量是邪恶的?

来自分类Dev

为什么全局变量的地址变了

来自分类Dev

C ++:为什么与访问全局变量相比,访问类数据成员如此缓慢?

来自分类Dev

C ++:为什么与访问全局变量相比,访问类数据成员的速度这么慢?

来自分类Dev

为什么Python会打印此全局变量而不是类属性?

来自分类Dev

为什么此Python代码无法在其功能之外打印出全局变量

来自分类Dev

朱莉娅(Julia)作用域:为什么此函数修改全局变量?

来自分类Dev

为什么我不能在WatchKit中更改全局变量的值-Swift?

来自分类Dev

为什么标头中的全局变量ofstream不能用C ++编写文件?

来自分类Dev

为什么计时器不能正确处理全局变量?

来自分类Dev

为什么python字符串不能从类内部更改全局变量?

来自分类Dev

为什么我不能在响应中直接用jest.fn()模拟全局变量?

来自分类Dev

为什么全局变量在函数内部可读但不能写?

来自分类Dev

为什么我不能在单独的html和js文件中使用全局变量?

来自分类Dev

函数内部的全局变量不能在外部访问

来自分类Dev

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

来自分类Dev

为什么我的函数和循环无法访问我的全局变量?

来自分类Dev

无限本地错误:为什么在函数中重新定义全局变量而不是仅引用全局变量时会发生此错误?

来自分类Dev

为什么变量不是全局变量但函数是可以的?

来自分类Dev

为什么在BGE Python中变量不是全局变量

来自分类Dev

为什么即使稍后在代码中定义了局部变量,全局变量也无法访问

来自分类Dev

函数访问全局变量

Related 相关文章

  1. 1

    为什么我不能访问该全局变量?

  2. 2

    为什么我不能访问全局变量中的值

  3. 3

    为什么不能删除全局变量?

  4. 4

    为什么我不能增加全局变量

  5. 5

    为什么在调试时全局变量“不可访问”?

  6. 6

    为什么这个变量不是全局变量(不能在函数中使用)?

  7. 7

    为什么构造函数中的全局变量和参数变量不能具有相同的名称?

  8. 8

    为什么全局变量是邪恶的?

  9. 9

    为什么全局变量的地址变了

  10. 10

    C ++:为什么与访问全局变量相比,访问类数据成员如此缓慢?

  11. 11

    C ++:为什么与访问全局变量相比,访问类数据成员的速度这么慢?

  12. 12

    为什么Python会打印此全局变量而不是类属性?

  13. 13

    为什么此Python代码无法在其功能之外打印出全局变量

  14. 14

    朱莉娅(Julia)作用域:为什么此函数修改全局变量?

  15. 15

    为什么我不能在WatchKit中更改全局变量的值-Swift?

  16. 16

    为什么标头中的全局变量ofstream不能用C ++编写文件?

  17. 17

    为什么计时器不能正确处理全局变量?

  18. 18

    为什么python字符串不能从类内部更改全局变量?

  19. 19

    为什么我不能在响应中直接用jest.fn()模拟全局变量?

  20. 20

    为什么全局变量在函数内部可读但不能写?

  21. 21

    为什么我不能在单独的html和js文件中使用全局变量?

  22. 22

    函数内部的全局变量不能在外部访问

  23. 23

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

  24. 24

    为什么我的函数和循环无法访问我的全局变量?

  25. 25

    无限本地错误:为什么在函数中重新定义全局变量而不是仅引用全局变量时会发生此错误?

  26. 26

    为什么变量不是全局变量但函数是可以的?

  27. 27

    为什么在BGE Python中变量不是全局变量

  28. 28

    为什么即使稍后在代码中定义了局部变量,全局变量也无法访问

  29. 29

    函数访问全局变量

热门标签

归档