PHP의 IF 문은 이 아니며은 가변 변수 범위를 변경합니다 - 함수와 다릅니다. IF에서 수행하는 작업은 동일한 범위에 머물러있는 한 IF 외부에서 볼 수 있습니다. GLOBAL을 사용할 필요가 없습니다. 사실 글로벌 범위는 가능한 한 적게 사용해야합니다.
글로벌 문은 범위를 넓히기 때문에 PHP가 숨길 수있는 항목을 "볼"수 있습니다. 범위의 상호 작용이 항상 명확하지 않기 때문에 변수 범위 지정을 이해해야합니다. 훌륭한 PHP 문서를 읽어 보시기 바랍니다. 당신은 그것을 몇 번 읽고 그것을 클릭하기 전에 약간의 실험을해야 할 것입니다.
코드에 문제가있는 것은 표시되지 않는 루프 내부에 있지 않으면 if 문이 지점이기 때문에 $ b 값을 볼 수 없으며 다음 중 하나만 실행하게됩니다. 가지 결코 이상의 1
귀하의 예를 또 다른 문제는 당신이 문 경우 연결 사용하고이 훨씬 더으로 기록 될 것입니다 :
switch ($a) {
case 1:
$b = "ABC";
break;
case 2:
# $b will ALWAYS be empty unless you set it BEFORE the switch OR
# you loop back to the switch AFTER $a=1
echo $b;
break;
default:
echo "i is not equal to 1 or 2";
}
참조 : http://php.net/manual/en/control-structures.switch.php
이 양식은 읽기가 훨씬 명확하고 케이스 수가 늘어 나면 훨씬 더 간단합니다 (&).
예, 시도하지 않은 이유는 무엇입니까? 변수는 변수입니다 ... 반드시 많은 의미를 지니지는 않습니다. 'if-else' 문의 한 번에 하나의 브랜치 만 실행됩니다. 명령문이 두 번 실행되는 경우에만 의미가 있습니다. –
왜 다른 변수에 같은 변수를 표시하려고하는지 이해할 수 없습니까? –
단계별로 등록 페이지를 만들고 있습니다. 마지막 단계에서 모든 vars에 액세스 할 수 있기를 바랍니다. – xRed