나는 PHP 파일이 있습니다PHP - 공지 사항 : 정의되지 않은 변수
<?php
$a = 1;
function test(){
echo $a;
}
test();
?>
을 그리고 난이 오류를 얻을 : 32 비트 W7 @ XAMPP를 사용
Notice: Undefined variable: a in X:\...\test.php on line 4
합니다.
나는 PHP 파일이 있습니다PHP - 공지 사항 : 정의되지 않은 변수
<?php
$a = 1;
function test(){
echo $a;
}
test();
?>
을 그리고 난이 오류를 얻을 : 32 비트 W7 @ XAMPP를 사용
Notice: Undefined variable: a in X:\...\test.php on line 4
합니다.
변수에는 기능 범위가 있습니다. 함수 내의 $a
은 함수 외부의 $a
과 같지 않습니다. 함수 내에서 변수 $a
을 정의하지 않았으므로 존재하지 않습니다. 함수에 전달하십시오 :
$a = 1;
function test($a) {
echo $a;
}
test($a);
가변 범위을 이해하는 데 문제가 있습니다. $a
은 범위의 글로벌 범위에 정의되어 있지만 함수 범위에는 정의되어 있지 않습니다.
$a
에 포함 된 내용을 알고 싶다면, 당신은 두 가지 선택이
권고 사항대로 전역을 사용할 수는 있지만 나쁜 습관입니다. 함수 밖에서 함수에 변수가 필요한 경우 매개 변수로 전달하십시오.
$a = 1;
function test($a) {
echo $a;
}
test($a);
기능 범위 때문입니다. 전역 $ a를 써야합니다. 함수의 맨 위에 있지만 전역 변수는 피해야합니다. PHP의 범위에 대해 조금 읽으십시오 –
http://php.net/manual/en/language.variables.scope.php – NullUserException
PHP에는 실제 전역 변수가 없습니다. 이 기능을 사용하려면 공유 범위에 연결해야합니다. (예제가 너무 추상적이지만 신입 사원은 종종 오용됩니다. 함수 매개 변수가 일반적으로 좋습니다.) – mario