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

蔡镇利

我当然尝试了一下$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';
        // ...
迈克·埃弗哈特(Mike Everhart)

您是$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

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

为什么我的全局变量不起作用?(蟒蛇)

来自分类Dev

为什么我的全局变量为null?

来自分类Dev

为什么我的mod_python全局变量被重置?

来自分类Dev

为什么我的函数不将值返回全局变量?

来自分类Dev

为什么我的 for 循环不使用更新的全局变量?

来自分类Dev

为什么我们不能使用C中的表达式为全局变量赋值?

来自分类Dev

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

来自分类Dev

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

来自分类常见问题

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

为什么我不能访问该课程的成员?

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

为什么我不能访问我的对象成员变量?

来自分类Dev

为什么我不能访问我的对象成员变量?

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

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

  5. 5

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

  6. 6

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

  7. 7

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

  8. 8

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

  9. 9

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

  10. 10

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

  11. 11

    为什么我的全局变量不起作用?(蟒蛇)

  12. 12

    为什么我的全局变量为null?

  13. 13

    为什么我的mod_python全局变量被重置?

  14. 14

    为什么我的函数不将值返回全局变量?

  15. 15

    为什么我的 for 循环不使用更新的全局变量?

  16. 16

    为什么我们不能使用C中的表达式为全局变量赋值?

  17. 17

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

  18. 18

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

  19. 19

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

  20. 20

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

  21. 21

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

  22. 22

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

  23. 23

    为什么我不能访问该课程的成员?

  24. 24

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

  25. 25

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

  26. 26

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

  27. 27

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

  28. 28

    为什么我不能访问我的对象成员变量?

  29. 29

    为什么我不能访问我的对象成员变量?

热门标签

归档