PHP 초보자의 경우 global
키워드 를 사용하면 함수 내에서 global
함수 외부의 변수, 경우에 따라 global
를 발견할 수 있습니다. , 변수가 올바르게 출력될 수 없습니다(즉,
여기에는 a.php와 b.php라는 두 페이지가 있습니다.
b.php 페이지 코드는 다음과 같습니다.
<?php $site_name = 'CodePlayer'; function sayHi(){ global $site_name; echo "Hello! Welcome to $site_name !"; } ?>
a.php 페이지 코드는 다음과 같습니다.
<?php function include_view_page(){ include 'b.php'; sayHi(); } include_view_page(); ?>
위의 예는 매우 간단합니다. a.php 페이지를 방문할 때 환영 문구가 올바르게 표시되기를 바랍니다. 그러나 불행하게도 브라우저
를 사용하여 a.php 페이지에 액세스하면 다음과 같은 출력이 표시됩니다.Hello! Welcome to !
include_view_page()
sayHi()
즉, sayHi()
함수에서 global
함수를 호출하면 b.php의 $site_name
함수에서 이 호출됩니다. 페이지가 올바르게 식별되지 않고 적용되지 않습니다. 무슨 일이야?
include_view_page()
실제로 include
함수 $site_name
의 b.php 페이지를 보면 b.php 페이지의 include_view_page()
변수는 global
에 저장되는 것과 동일합니다. 범위 내에서 기능합니다. 우리 모두 알고 있듯이 $site_name
함수 내의 변수는 실제로 함수 내 페이지의 전역 변수에 대한 참조를 설정합니다. 우리의 예에서 이 include_view_page()
변수는 a.php의 global
함수 내의 로컬 변수일 뿐이므로 관련 호출을 할 때 올바른 변수를 얻을 수 없습니다. 가치.
include
PHP에서는 위에서 언급한 함수 내의 페이지 include
로 인해 페이지의 변수 범위가 변경되는 문제에 특히 주의해야 합니다. 이러한 상황을 피하려면 다단계 include
호출을 줄이고 함수 내에서 을 사용하지 않도록 노력해야 합니다.
이러한 실패는 다양한 이유로 인해 발생합니다. 유효한 해결 방법은 $GLOBALS 배열을 사용하는 것입니다. 배열은 항상 유효합니다.
$GLOBALS['site_name'] = 'CodePlayer';참조 : http://www.365mini.com/page/php-global-invalid.htm
위 내용은 내용의 측면을 포함하여 잘못된 PHP 전역 변수를 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.