PHP:包含或必需文件中未定义的变量



嗨,我遇到了一个未设置变量的问题。如果我使用的是相对路径,它会正常工作,但当使用绝对路径时,php会说它没有设置。

<?php
define('DS', DIRECTORY_SEPARATOR);
define('SITE_ROOT', 'G:' . DS . 'htdocs' . DS . 'www');
define('LAYOUT_PATH', SITE_ROOT . DS . 'layout');
require('function.php');    
$user = new User();
$user->set_username('johndoe');
require_layout_template('header.php');
?>

在我的header.php:内部

<?php
//if ( isset($user) ) {
    echo $user->get_username();
//}
?>

上面的结果是这个错误:Notice: Undefined variable: user in G:htdocswwwlayoutheader.php

然而,如果我使用相对路径,一切都可以。

我在windows环境中的localhost上运行,并在PHP 5.3.5版本中运行。

更新:

这是我的错,我没有包括require_layout_template。我在function.php中包含了这个函数,以便为需求处理必要的细节。

<?php
    //function.php
    function require_layout_template($template) {
        global $user; // added this to solve the problem.
        require(LAYOUT_PATH . DS . $template);
    }
?>

我已经为变量$user添加了必要的全局变量。

谢谢@strkol的想法。

通常最好的方法是在用户直接调用的站点上定义根目录。因此,所有索引站点,应该由用户直接寻址,但不在其他.php文件中,包括或类等等

index.php:
$rootdir = '../';
require_once($rootdir.'dir/other.php);

相关内容

  • 没有找到相关文章

最新更新