【问题标题】:PHP $GLOBALS variable issue in included file包含文件中的 PHP $GLOBALS 变量问题
【发布时间】:2011-09-20 23:40:50
【问题描述】:

我最近将一个大型 CubeCart 安装移到了新服务器上,这引发了一大堆问题。他们中的大多数我被错误地整理出来,但我被困在这个:

在主 index.php 文件中包含配置文件,它设置关键变量,如 $glob['rootDir']。然后几行之后,在主 index.php 文件中包含另一个重要脚本,并调用其中一些 $glob 变量,但在 $GLOBALS 超全局变量下。但是,这是行不通的。如果我放第二个包含的文件 var_dump($GLOBALS) 它就在那里......但是如果我放 echo $GLOBALS['rootDir'] 我什么也得不到。 我没有收到任何错误或任何错误,只是未定义索引。

这是 PHP 设置的问题吗?该站点之前在以前的服务器上运行良好,但我不知道它运行的是什么版本的 PHP 或具体设置。

代码示例:

主索引文件:

//INCLUDE CORE VARIABLES & FUNCTIONS
include_once("includes/global.inc.php");
//... other stuff ...
include_once("includes/sessionStart.inc.php");

GLOBAL.INC.PHP:

$glob['dbhost'] = 'localhost';
//other variables, including $glob['rootRel'];

SESSIONSTART.INC.PHP:

$sessionDomain = substr($GLOBALS['rootRel'],0, strlen($GLOBALS['rootRel'])-1);
//the above is where it throws Undefined Index

谢谢!

【问题讨论】:

    标签: php variables globals


    【解决方案1】:

    $glob 和 $GLOBALS 是不同的变量,所以这种行为是可以的。

    【讨论】:

    • 我明白这一点,但由于某种原因,我的印象是脚本中任何位置设置的所有变量都可以在 $GLOBALS 变量下使用。不过我想这没有意义,因为它会像 $GLOBALS['glob']['rootDir'] 这样的东西。很奇怪,虽然它之前在另一台服务器上工作过。
    猜你喜欢
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    相关资源
    最近更新 更多