>  기사  >  백엔드 개발  >  PHP 전역 변수와 슈퍼 전역 변수의 차이점에 대한 자세한 분석

PHP 전역 변수와 슈퍼 전역 변수의 차이점에 대한 자세한 분석

墨辰丷
墨辰丷원래의
2018-06-04 10:44:071444검색

이 글에서는 주로 PHP 전역 변수와 슈퍼 전역 변수의 차이점을 소개합니다. 보다 자세한 분석은 PHP 전역 변수와 슈퍼 전역 변수의 개념, 사용법, 차이점을 설명합니다. 필요하신 분들은 참고하세요

글로벌 변수는 함수에 있습니다. 외부에 정의된 변수입니다. 함수에서 직접 사용할 수 없습니다. 그 범위가 함수 내부로 들어가지 않기 때문입니다. 따라서 함수 내에서 사용할 때 전역 $a;

수퍼 전역 변수 범위는 모든 스크립트에서 유효합니다. 따라서 해당 기능을 직접 사용할 수 있습니다. 예를 들어 $_GET 및 $_SERVER는 슈퍼 전역 변수입니다. $_GET, $_POST, $_SERVER, $_COOKIE 등을 제외한 슈퍼글로벌 변수는 $GLOBALS 배열에 저장됩니다. 실수로 $_GLOBALS를 쓰지 마세요. $_POST의 영향을 조금 받습니다.

$GLOBAL은 특별한 PHP 사용자 정의 배열입니다. 슈퍼 전역 변수. $_SERVER와 마찬가지로 모두 슈퍼 전역 변수입니다.

수퍼글로벌 변수에 대한 자세한 설명과 사용법은 매뉴얼에서 $GLOBALS를 검색해 보세요

변수명은 배열의 인덱스입니다. 설명: $GLOBALS['a']를 사용하여 슈퍼 전역 변수를 정의한 후입니다. $a를 사용하여 직접 액세스할 수 있습니다.

이 내용은 매뉴얼에 설명되어 있습니다.

$GLOBALS — 전역 범위에서 사용 가능한 모든 변수를 참조합니다. 전역 범위에서 사용 가능한 모든 변수를 참조합니다.

예를 통해 이해하세요. function 변수 $a가 외부에 정의되어 있습니다. 그런 다음 $GLOBALS['a']를 사용하여 함수에서 이 변수의 값을 가져올 수 있습니다. 따라서 $GLOBALS 배열 내부에는 모든 사용자 정의 전역 변수가 있습니다.

슈퍼전역변수라고 불리는 이유. $_POST와 비교하여 함수에서 직접 사용할 수 있습니다. global 문을 전혀 사용할 필요가 없습니다. 따라서 $GLOBALS는 $_POST가 post 메소드에 전달된 변수를 저장한다는 점을 제외하면 동일한 원칙을 갖습니다. $GLOBALS는 사용자 정의 전역 변수를 저장합니다.

개인적인 이해:

슈퍼 전역 변수에 대한 이전 이해가 잘못되었습니다. 슈퍼 전역 변수는 모든 스크립트에서 유효합니다. 이 설명은 이해에 미묘한 차이를 가져왔습니다. 모든 스크립트에서 유효하다면 $GLOBALS에 의해 저장된 슈퍼 전역 변수입니까? 하나의 PHP 파일에 정의된 후에도 다른 파일에서 얻을 수 있습니다.

분명히 그렇지는 않을 것입니다. 모든 사람이 접근할 수 있는 것으로 보이기 때문에 아마도 $_POST의 영향을 받을 것입니다. 현재 처리된 $_POST 데이터에만 액세스할 수 있다는 사실을 몰랐습니다. 두 사람이 동시에 메시지를 제출하는 것은 불가능합니다.php 파일에서 얻은 게시물 데이터를 구별하는 방법. 이 데이터는 현재 스레드에만 속할 수 있습니다. 마지막으로 슈퍼 전역 변수는 전역 변수에 상대적이기 때문에 이런 방식으로 볼 수 있습니다. 전역 변수보다 한 수준 높은 전역 변수는 함수 내에서 사용할 수 없습니다. 문제를 해결합니다. 다른 언어에서는 전역 변수를 함수 내에서 사용할 수 있습니다. PHP 언어 디자인에서는 그렇지 않습니다.

전역 변수는 함수 내에서 직접 사용되기 때문에 직접 사용할 수 있는 변수를 제공해야 합니다. 여기에 슈퍼 전역 변수의 개념이 있습니다.

요약: 위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.

관련 권장사항:

php특정 범위 내에서 N개의 반복되지 않는 난수를 얻는 방법

phpnumber_format 함수를 사용하여 소수점을 가로채는 방법 및 예제 분석

php

에서 혼란스러운 길이 계산 문제에 대한 간단한 분석

위 내용은 PHP 전역 변수와 슈퍼 전역 변수의 차이점에 대한 자세한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.