可是我在实际测试中发现
这个地址在iis_fastcgi模式下会是空值
if(!defined('_PHP_FILE_')) {
if(IS_CGI) {
//CGI/FASTCGI模式下
$_temp = explode('.php',$_SERVER['PHP_SELF']);
define('_PHP_FILE_', rtrim(str_replace($_SERVER['HTTP_HOST'],'',$_temp[0].'.php'),'/'));
}else {
define('_PHP_FILE_', rtrim($_SERVER['SCRIPT_NAME'],'/'));
}
}
if(!defined('__ROOT__')) {
$_root = rtrim(dirname(_PHP_FILE_),'/');
var_dump(dirname(_PHP_FILE_),$_root);
define('__ROOT__', (($_root=='/' || $_root=='\\')?'':$_root));
}
测试结果是空值原因就在于$_root=='/' || $_root=='\\'
这个运算基本上都是true,为了让他变成false或者直接不运算,我们只能在index.php入口文件中定义define('__ROOT__', ‘/’);
最佳答案
