为什么我的变量和函数不能从包含文件中识别出来

时间:2011-03-17 18:41:19

标签: php function include

这是名为'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行),为什么?

1 个答案:

答案 0 :(得分:2)

这有时意味着include_path中其他位置存在另一个具有相同名称(旧版或备份版)的包含文件。为避免这种情况,请使用显式路径并强制它可靠地失败:

<?php require('./VariablesFunctions.php');
    getPageUrl();

问题也可能是由您的大小写混合文件名引起的。在BSD / Linux服务器上,文件名必须完全匹配,不会被视为不区分大小写。

另外:避免通过全局变量返回结果,使其成为正确的返回值。