PHP - Примечание: неопределенная переменная - PullRequest
2 голосов
/ 04 сентября 2011

У меня есть php-файл:

<?php
$a = 1;
function test(){ 
    echo $a;
} 
test();
?>

И я получаю эту ошибку:

Notice: Undefined variable: a in X:\...\test.php on line 4

Использование XAMPP @ 32bit W7.

Ответы [ 3 ]

7 голосов
/ 04 сентября 2011

Переменные имеют область действия функции. $a внутри функции не совпадает с $a вне функции. Внутри функции вы не определили переменную $a, поэтому она не существует. Передайте его в функцию:

$a = 1;
function test($a) { 
    echo $a;
} 
test($a);
1 голос
/ 04 сентября 2011

Вы можете использовать global как рекомендовано, но это плохая практика.Если вам нужны переменные в функции вне функции, тогда передайте их как параметры.

$a = 1;
function test($a) {
    echo $a;
}
test($a);
1 голос
/ 04 сентября 2011

У вас проблемы с пониманием переменная область действия .$a определяется в глобальной области действия , но не в области действия function .Если вы хотите, чтобы ваша функция знала, что содержит $a, у вас есть два варианта:

  1. Сделать ее глобальной (обычно это плохое решение)
  2. Добавить новый аргумент в вашу функцию,и передайте вашу переменную в вашу функцию
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...