【发布时间】:2012-01-16 04:28:03
【问题描述】:
尝试从<root>/incl/classes 文件夹自动加载类。
问题是,当我为 ex 打电话时。 ip 那样
$ip= new ip();
$ip=$ip->get();
PHP 给出错误消息 注意:未定义变量:路径。但实际上文件已经存在
我在页面顶部声明了所有不同的路径。
define("ds", DIRECTORY_SEPARATOR);
$path = array();
$path['root'] = $_SERVER['DOCUMENT_ROOT'];
$path['common'] = $path['root'] . ds . "common";
$path['design'] = $path['root'] . ds . "design";
$path['contents'] = $path['root'] . ds . "contents";
$path['content_images'] = $path['root'] . ds . "content" . ds . "images";
$path['design_images'] = $path['root'] . ds . "design" . ds . "images";
$path['blocks'] = $path['contents'] . ds . "blocks";
$path['includes'] = $path['root'] . ds . "incl";
$path['pages'] = $path['contents'] . ds . "pages";
$path['classes'] = $path['includes'] . ds . "classes";
$files = glob("common" . ds . "*.php");
array_unshift($files, $path['common'] . ds . "settings.php", $path['common'] . ds . "db.php");
foreach ($files as $filename)
require_once $filename;
//Auto loading classes
function __autoload($class_name) {
if (file_exists($path['classes'] . ds . $class_name . '.php')) {
require_once($path['classes']. ds . $class_name . '.php');
} else {
die($path['classes'] . ds . $class_name . '.php');
}
}
出于测试目的添加了die($path['classes'] . ds . $class_name . '.php'); 行。它输出\ip.php。我想知道,为什么即使我之前声明它也不回显 $path['classes'] ?
【问题讨论】: