>백엔드 개발 >PHP 문제 >PHP 상수의 범위

PHP 상수의 범위

(*-*)浩
(*-*)浩원래의
2019-09-09 09:24:113360검색

PHP의 모든 변수에는 변수(및 해당 값)에 액세스할 수 있는 영역인 특정 범위가 있습니다.

PHP 상수의 범위

우선 변수의 범위는 해당 변수가 있는 페이지입니다. 따라서 $var를 정의하면 페이지의 나머지 부분에서는 $var에 액세스할 수 있지만 일반적으로 다른 페이지에서는 $var에 액세스할 수 없습니다(특수 변수를 사용하지 않는 한). (추천 학습: PHP 프로그래밍 초보부터 마스터까지)

include 파일은 원본(포함된) 스크립트의 일부인 것처럼 작동하기 때문에 include() 줄 앞에 정의된 변수는 포함된 파일에서 사용할 수 있습니다. 또한, 포함 파일 내에 정의된 변수는 include() 줄 뒤의 상위(포함) 스크립트에서 사용할 수 있습니다.

자신이 정의한 함수를 사용하면 이 모든 것이 덜 명확해집니다. 이러한 함수에는 자체 범위가 있습니다. 즉, 함수 내에서 사용되는 변수는 함수 외부에서 사용할 수 없고, 함수 외부에서 정의된 변수는 함수 내부에서 사용할 수 없습니다. 이러한 이유로 함수 내부의 변수는 외부 변수와 동일한 이름을 가질 수 있지만 여전히 값이 다른 완전히 다른 변수입니다. 대부분의 주니어 프로그래머에게 이는 혼란스러운 개념입니다.

함수 내에서 변수의 범위를 변경하려면 global 문을 사용할 수 있습니다.

<?php
function function_name() {
    global $var;
}
 
$var = 20;
function_name(); // Function call.
?>

이 예에서 함수 내부의 $var는 이제 함수 외부의 $var와 동일합니다. 즉, $var 변수에는 이미 20이라는 값이 있고, 이 값이 함수 내부에서 변경되면 외부의 $var 값도 변경된다는 의미입니다.

변수 범위를 피하는 또 다른 방법은 슈퍼전역 변수($_GET, $_POST, $_REQUEST 등)를 사용하는 것입니다. 이러한 변수는 함수 내에서 자동으로 액세스할 수 있습니다(따라서 슈퍼전역 변수입니다). 함수 내에서 사용할 수 있도록 $GLOBALS 배열에 요소를 추가할 수도 있습니다.

즉, 함수 내에서는 전역 변수를 사용하지 않는 것이 가장 좋습니다. 함수를 설계할 때 필요에 따라 모든 값을 매개변수로 받아들이고 필요에 따라 값을 반환하도록 해야 합니다. 함수 내에서 전역 변수에 의존하면 함수가 상황에 더 의존하게 되어 유용성이 떨어집니다.

일단 선언되면 상수는 전역적으로 표시됩니다. 즉, 함수 내부 및 외부에서 사용할 수 있지만 이는 한 페이지에 포함된 PHP 스크립트(include 및 include_once를 통해 포함하는 PHP 스크립트 포함)로만 제한됩니다. 다른 페이지에서는 더 이상 사용할 수 없습니다.

위 내용은 PHP 상수의 범위의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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