Почему моя переменная и функции не распознаются из включаемого файла - PullRequest
1 голос
/ 17 марта 2011

Вот включаемый файл с именем '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 браузер говорит неопределенную функцию (строка 2 выше в файле index.php), почему?

1 Ответ

2 голосов
/ 17 марта 2011

Иногда это означает, что в другом месте include_path существует другой файл включения с тем же именем (старая или резервная версия).Чтобы избежать этого, используйте явный путь и принудительно завершите его с ошибкой:

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

Возможно, проблема также связана с именами файлов в смешанном регистре.На серверах BSD / Linux имена файлов должны точно совпадать, они не считаются регистронезависимыми.

Также: избегайте возврата результатов через глобальную переменную, сделайте правильное возвращаемое значение.

...