【发布时间】:2013-08-27 17:05:46
【问题描述】:
start.php
<?php
if(file_exists('/config.php')) require_once('/config.php');
echo TEST;
?>
config.php
<?php
define('TEST','Hamsters');
?>
我有 Windows XP + XAMPP 和 PHP 版本 5.3.8。
如果我运行 start.php 它会给我这个错误:
注意:使用未定义的常量 TEST - 在第 3 行的 C:\programs\xampp\htdocs\start.php 中假定为“TEST”
现在我将 start.php 修改为以下内容,他给了我我的Hamsters:
<?php
require_once('/config.php');
echo TEST;
?>
file_exists() 怎么能说文件不存在但没有条件仍然可以require_once() 声称不存在的文件?
【问题讨论】:
-
哇,这让我想起了圣经中的故事,比如在没有怀孕的情况下分娩。请放心,当 PHP 需要一个文件时,它确实存在。只是根据定义。所以你应该更想知道你认为它不存在的事实。
-
哦,如果你不知道,有一个叫做 include_path 的东西,它是一个设置:php.net/include_path
-
可能是因为领先的
/。如果您的文件位于 C:\Web\path\to\website\ 那么包括 /config.php 将包括 C:\config.php。
标签: php windows filesystems require file-exists