Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP 변수 범위

<시간/>

소개

프로그래밍에서 범위는 변수에 액세스할 수 있는 범위를 나타냅니다. 일반적으로 루프, 함수 등과 같은 구성 요소가 없는 간단한 PHP 스크립트에는 단일 범위가 있습니다. 의미에서 변수는 정의 시점부터 프로그램 전체에서 사용할 수 있습니다.

기본 스크립트의 변수는 include 또는 require 문과 통합된 다른 스크립트에서도 사용할 수 있습니다. 다음 예에서는 test.php 스크립트가 메인 스크립트에 포함되어 있습니다.

이것은 메인 스크립트입니다

$var=100;"test.php" 포함;?>

포함된 test.script 파일은 다음과 같습니다 -

echo "testscript.php의 \$var 값:" . $var;?>

메인 스크립트가 실행되면 다음과 같은 결과가 표시됩니다.

testscript.php의 $var 값:100

그러나 스크립트에 사용자 정의 함수가 있는 경우 내부의 모든 변수에는 로컬 범위가 있습니다. 따라서 함수 내부에 정의된 변수는 외부에서 접근할 수 없습니다. 함수 외부(위)에서 정의된 변수는 전역 범위를 가집니다.

예시

출력

이것은 다음 결과를 생성합니다 -

var=var1=Hellovar=100 var1=PHP 주의:정의되지 않은 변수:5PHP 행의 var 주의:정의되지 않은 변수:8행의 var1

전역 변수는 기능의 로컬 범위 내에서 자동으로 사용할 수 없습니다. 또한 함수 내부의 변수는 외부에서 액세스할 수 없습니다.

글로벌 키워드

전역 키워드를 사용하여 로컬 범위 내의 전역 변수에 대한 액세스를 명시적으로 활성화해야 합니다. PHP 스크립트는 다음과 같습니다 -

예시

출력

이것은 다음 결과를 생성합니다 -

함수 호출 전 a =10 b =20inside function a =10 b =20 c =15PHP 주의:정의되지 않은 변수:c in line 13after function a =20 b =20 c =

전역 변수는 이제 함수 내에서 처리할 수 있습니다. 또한 함수 내부의 전역 변수에 대한 변경 사항은 전역 네임스페이스에 반영됩니다.

$GLOBALS 배열

PHP는 $GLOBALS라는 연관 배열에 모든 전역 변수를 저장합니다. 변수의 이름과 값은 키-값 쌍을 형성합니다.

다음 PHP 스크립트에서 $GLOBALS 배열은 전역 변수에 액세스하는 데 사용됩니다 -

예시

출력

함수 호출 전 a =10 b =20c =15PHP 주의:정의되지 않은 변수:c 줄 12주의:정의되지 않은 변수:함수 a =20 b =20 c =이후 12번째 줄의 c 

정적 변수

static 키워드로 정의된 변수는 함수를 호출할 때마다 초기화되지 않습니다. 또한 이전 호출의 값을 유지합니다.

예시

출력

이것은 다음과 같은 결과를 생성합니다

함수 호출 :1 :x =0함수 호출 :2 :x =1함수 호출 :3 :x =2