【问题标题】:PHP set global variable as handle for classPHP将全局变量设置为类的句柄
【发布时间】:2012-05-18 11:42:52
【问题描述】:

由于某种原因,定义时:

 function __construct() {
    if(!isset($_GLOBALS["className"])) {
      $_GLOBALS["className"] = new className;
    }
    return true;
  }

 $_GLOBALS["className"]->classMethod();

PHP 出于某种原因声明 $_GLOBALS["className"] 未定义。

哦,即使我在该类中将全局值设置为其他值,也会发生同样的情况。我可以通过构造或其他方法来测试全局的值,但不能在外面测试——似乎全局由于某种原因在类之外丢失了。

有没有办法在从外部类中声明全局后保留它? 真诚感谢任何帮助!

【问题讨论】:

  • 这是所有代码,还是您没有向我们展示更多? __construct() 应该在类内,而其他部分应在类外。
  • 我知道,这是功能失调的部分。
  • 它也被称为$GLOBALS 而不是$_GLOBALS。 (注意没有下划线。)

标签: php oop globals


【解决方案1】:

您想使用$GLOBALS 而不是$_GLOBALS

http://php.net/manual/en/reserved.variables.globals.php

$_GLOBALS 只会在您的函数范围内可用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-27
    • 1970-01-01
    • 2017-04-03
    • 2017-06-21
    • 2013-11-10
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    相关资源
    最近更新 更多