嗨,我有一个未设置变量的问题。如果我使用的是相对路径,它可以正常工作,但是当使用绝对路径时,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:\htdocs\www\layout\header.php
但是,如果我使用相对路径,一切都很好。
我在 Windows 环境中的本地主机上运行并在 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 的想法。