这是名为'VariablesFunctions.php'的包含文件:
$currWebPage = '';
function getPageUrl( )
{
global $currWebPage;
if( $_SERVER['HTTPS'] == 'on' ) $currWebPage .= 's';
$currWebPage .= '://';
if( $_SERVER["SERVER_PORT"] != "80" )
$currWebPage .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
else $currWebPage .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
这是调用它的文件(index.php):
<?php include( 'VariablesFunctions.php' );
getPageUrl( );
echo $currWebPage;
?>
这两个文件都保存在同一个目录中,当启动index.php文件时,浏览器显示未定义的函数(index.php文件中的第2行),为什么?
答案 0 :(得分:2)
这有时意味着include_path中其他位置存在另一个具有相同名称(旧版或备份版)的包含文件。为避免这种情况,请使用显式路径并强制它可靠地失败:
<?php require('./VariablesFunctions.php');
getPageUrl();
问题也可能是由您的大小写混合文件名引起的。在BSD / Linux服务器上,文件名必须完全匹配,不会被视为不区分大小写。
另外:避免通过全局变量返回结果,使其成为正确的返回值。