목차
범위 가란 무엇이며 왜 중요한가요?
글로벌 범위 : 큰 그림
로컬 범위 : 포함 및 제어
로컬 및 글로벌 상호 작용할 때
글로벌 변수를 읽습니다
글로벌 수정 :주의해서 사용하십시오
블록 범위 : 언어 별 세부 사항
범위 관리를위한 모범 사례
최종 생각
백엔드 개발 PHP 튜토리얼 경계 탐색 : 로컬 및 글로벌 범위로의 깊은 다이빙

경계 탐색 : 로컬 및 글로벌 범위로의 깊은 다이빙

Jul 26, 2025 am 09:38 AM
PHP Variables Scope

로컬 및 글로벌 범위의 차이점은 변수가 선언되고 액세스 가능한 위치에 있습니다. 글로벌 변수는 외부 기능 외부 기능으로 정의되고 모든 곳에 액세스 할 수있는 반면, 로컬 변수는 내부 기능으로 선언되며 해당 내부에만 액세스 할 수 있습니다. 1. 글로벌 범위는 광범위한 액세스를 허용하지만 의도하지 않은 수정, 테스트 가능성 감소 및 명명 충돌을 위험에 빠뜨립니다. 2. 로컬 범위는 캡슐화를 보장하고 부작용을 방지하며 모듈 식 재사용 가능한 코드를 가능하게합니다. 3. 기능은 글로벌 변수를 읽을 수 있지만 글로벌 키워드를 사용하여 우발적 인 로컬 변수 생성을 피하기 위해 수정해야합니다. 4. 블록 범위 동작은 언어에 따라 다릅니다. —Python 및 오래된 JavaScript (VAR)에는 블록 수준 범위가 부족한 반면 Modern JavaScript (Let, Const)는이를 시행합니다. 5. 모범 사례에는 로컬 범위를 선호하고 데이터 흐름에 대한 매개 변수 및 반환 값을 사용하고, 글로벌 사용량을 상수로 제한하고, 혼동을 방지하기위한 명확한 변수 이름을 보장합니다. 범위를 이해하면 변수에 액세스하고 수정할 수있는 위치를 명확하게 정의하여 코드 예측 가능성, 유지 관리 및 협업이 향상됩니다.

경계 탐색 : 로컬 및 글로벌 범위로의 깊은 다이빙

프로그래밍, 특히 Python, JavaScript 또는 C와 같은 언어로 학습 할 때 로컬글로벌 범위 의 차이를 이해하는 것이 필수적입니다. 이러한 개념은 코드에서 변수 및 기능에 액세스 할 수있는 위치를 결정하며이를 잘못 관리하면 버그, 예기치 않은 동작 또는 관리하기 어려운 스크립트로 이어질 수 있습니다. 로컬 및 글로벌 범위가 실제로 의미하는 바, 상호 작용 방법 및 효과적으로 사용하는 방법을 분류합시다.

경계 탐색 : 로컬 및 글로벌 범위로의 깊은 다이빙

범위 가란 무엇이며 왜 중요한가요?

범위는 변수 또는 함수에 액세스 할 수있는 코드 영역을 나타냅니다. 가시성처럼 생각하십시오. 외부에서 닫힌 실 안에있는 것을 볼 수없는 것처럼 코드는 현재 범위가 아닌 한 변수에 액세스 할 수 없습니다.

두 가지 주요 유형이 있습니다.

경계 탐색 : 로컬 및 글로벌 범위로의 깊은 다이빙
  • 글로벌 범위 : 기능이나 블록 외부에서 선언 된 변수는 전 세계적으로 액세스 할 수 있습니다.
  • 로컬 범위 : 함수 내부에서 선언 된 변수 (또는 일부 언어로 된 블록)는 해당 함수 내에서만 액세스 할 수 있습니다.

이 차이는 명명 충돌을 방지하고 부작용을 줄이며 코드를보다 예측할 수 있도록 도와줍니다.


글로벌 범위 : 큰 그림

스크립트의 최상위 레벨 (모든 함수 또는 클래스)에서 정의 된 변수는 전역 범위에 있습니다.

경계 탐색 : 로컬 및 글로벌 범위로의 깊은 다이빙
 # Python 예제
City = "베를린"

def greet () :
    print (f "hello from {city}!")

greet () # 출력 : 베를린에서 안녕하세요!

여기에서 city 는 글로벌이므로 greet() 함수에 액세스 할 수 있습니다. 그러나이 편의성에는 위험이 있습니다.

글로벌 변수와의 일반적인 함정 :

  • 우연히 어디서나 수정할 수 있습니다.
  • 코드를 테스트하고 디버그하기가 더 어려워집니다.
  • 재사용 성을 줄입니다 (기능은 외부 상태에 따라 다릅니다).

따라서 글로벌 변수는 상수 또는 구성에 유용하지만 변이 가능한 데이터에는 사용하지 마십시오.


로컬 범위 : 포함 및 제어

함수 내부에서 변수를 정의하면 해당 함수의 로컬입니다.

 def calculate_area (Radius) :
    PI = 3.14159
    면적 = pi * 반경 ** 2
    반품 지역

# print (pi) # 이것은 nameerror를 유발합니다

여기에서 piarea calculate_area 내부에만 존재합니다. 함수가 완료되면 (반환되지 않는 한) 사라졌습니다.

핵심 사항 :

  • 로컬 변수는 기능이 종료 될 때 실행되고 파괴 될 때 생성됩니다.
  • 여러 기능은 충돌없이 동일한 변수 이름을 사용할 수 있습니다.
  • 이 분리는 기능을 모듈화하고 안전하게 만듭니다.

로컬 및 글로벌 상호 작용할 때

때로는 함수 내에서 글로벌 변수에 액세스하거나 수정해야합니다. 그것이 상황이 까다로워지는 곳입니다.

글로벌 변수를 읽습니다

대부분의 언어에서는 문제없이 로컬 범위에서 글로벌 변수를 읽을 수 있습니다.

 카운터 = 0

def excrement () :
    인쇄 (카운터 1) # 글로벌 카운터를 읽습니다

증분 () # 출력 : 1

그러나 수정 하려고하면 실수로 로컬 변수를 대신 생성 할 수 있습니다.

 def excrement () :
    카운터 = 카운터 1 # 오류! 파이썬은 '카운터'가 현지라고 생각합니다

Python은 counter 할 과제를보고 현지인이라고 가정하기 때문에 실패하지만 정의되기 전에 읽으려고합니다.

글로벌 수정 :주의해서 사용하십시오

실제로 함수 내에서 전역 변수를 변경하려면 다음을 명시 적으로 선언해야합니다.

 카운터 = 0

def excrement () :
    글로벌 카운터
    카운터 = 카운터 1

증가()
인쇄 (카운터) # 출력 : 1

global 키워드는 Python에게 다음과 같이 말합니다.“이것은 새로운 로컬 변수가 아닙니다. 저는 글로벌 범위의 변수를 의미합니다.”

⚠️ 경고 : global 브레이크 캡슐화를 과도하게 사용합니다. 기능은 외부 상태에 의존하여 유지 관리에 해를 끼칩니다.


블록 범위 : 언어 별 세부 사항

모든 언어가 같은 방식으로 범위를 처리하는 것은 아닙니다.

  • 파이썬 : 블록 범위가 없습니다. if , for 또는 while 블록 내부의 변수는 여전히 외부에 액세스 할 수 있습니다 (함수에서는 그렇지 않은 경우).

     사실이라면 :
        x = 100
    인쇄 (x) # 작동 : 100
  • JavaScript ( var 포함) : 블록 범위가 없음 (함수 스코어).

  • JavaScript ( let / const 포함) : 블록 스코프가 있습니다.

     if (true) {
        y = 200을하자;
    }
    Console.log (y); // referenceError : y는 정의되지 않았습니다

    따라서 항상 언어가 범위를 처리하는 방법, 특히 루프 나 조건부를 사용할 때 어떻게 해야하는지 확인하십시오.


    범위 관리를위한 모범 사례

    클리너, 안전한 코드를 작성하려면 :

    • 전 세계보다 로컬을 선호하십시오 . 데이터를 사용한 위치에 가깝게 유지하십시오.
    • 매개 변수 및 반환 값을 사용하십시오 : 글로벌에 의존하는 대신 데이터를 명시 적으로 전달하십시오.
    • 전역 구성에 상수를 사용하십시오 : 전역 값이 있어야하는 경우 읽기 전용으로 만듭니다.
    • 절대적으로 필요한 경우가 아니라면 global 피하십시오 . 대부분의 경우 코드 냄새입니다.
    • 이름 변수를 명확하게 : 다른 범위에서 비슷한 이름 사이의 혼란을 피하는 데 도움이됩니다.

    최종 생각

    범위를 이해하는 것은 오류를 피하는 것뿐만 아니라 예측 가능하고 테스트 가능하며 협력하기 쉬운 코드 작성에 관한 것입니다. 로컬 스코프는 의도하지 않은 부작용으로부터 기능을 보호하는 반면, 글로벌 스코프는 필요할 때 공유 액세스를 제공합니다.

    전역 변수를 드물게 사용하고 로컬 범위를 수용하며 항상 변수가 사는 곳을 염두에 두십시오. 그렇게하면 자신감으로 범위의 경계를 탐색 할 수 있습니다.

    기본적으로, 가능할 때, 필수적으로는 현지인을 유지하십시오.

    위 내용은 경계 탐색 : 로컬 및 글로벌 범위로의 깊은 다이빙의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제

전능 한 범위 : PHP의 슈퍼 글로벌에 대한 실용 가이드 전능 한 범위 : PHP의 슈퍼 글로벌에 대한 실용 가이드 Jul 26, 2025 am 09:47 AM

PHP의 초 고 유적 변수는 항상 요청 데이터를 처리하고 상태를 관리하며 서버 정보를 얻는 데 사용되는 내장 배열을 사용할 수 있습니다. 1. $ _get을 사용할 때 URL 매개 변수는 유형으로 변환하고 확인해야합니다. 2. $ _post를 통해 양식 데이터를 수신 할 때 필터링을 filter_input ()로 수행해야합니다. 3. 보안 취약점을 방지하기 위해 $ _request를 사용하지 마십시오. 4. $ _session Session_Start ()을 호출하고 로그인하여 세션 ID를 재설정해야합니다. 5. $ _cookie를 설정할 때 보안, httponly 및 samesite 속성을 활성화하십시오. 6. $ _server의 정보는 완전히 신뢰할 수 없으며 보안 검증에 사용될 수 없습니다. 7. $ _ Env

범위 해상도 순서 : PHP가 변수를 찾는 방법 범위 해상도 순서 : PHP가 변수를 찾는 방법 Jul 25, 2025 pm 12:14 PM

phpresolvesvariablesinaspecificorder : 1. localscopeitinthecurrentfunction, 2.functionparameters, 3. variablesimportedviauseinclosures, 4.globalscopeonyifexplicitlydeclaredwithglobaloraccessed globals, 5.sperglobals와 같은 $ _sphichareal

경계 탐색 : 로컬 및 글로벌 범위로의 깊은 다이빙 경계 탐색 : 로컬 및 글로벌 범위로의 깊은 다이빙 Jul 26, 2025 am 09:38 AM

Thedifferencebetweenlocalandglobalscopeliesinwherevariablesaredeclaredandaccessible:globalvariablesaredefinedoutsidefunctionsandaccessibleeverywhere,whilelocalvariablesaredeclaredinsidefunctionsandonlyaccessiblewithinthem.1.Globalscopeallowsbroadacce

글로벌 액세스를 해제하는 것 :`Global` 키워드 대`$ globals '배열 글로벌 액세스를 해제하는 것 :`Global` 키워드 대`$ globals '배열 Jul 25, 2025 am 05:27 AM

thetwomaintoolsforaccessingglobalvariablesinphparetheglobalkeyword and globalssuperglobalarray; 1) theglobalkeywordcreatesErencetoAglobalvariableInsidefunction, directaccessandmodification, andifthevariableisundefined, Itinitifined

어휘 스코핑 마스터 링 :`사용 '키워드 및 PHP 익명 기능 어휘 스코핑 마스터 링 :`사용 '키워드 및 PHP 익명 기능 Jul 25, 2025 am 11:05 AM

PHP에서 익명 함수로 외부 변수를 사용하려면 사용 키워드를 통해 명시 적으로 가져와야합니다. 1. 사용은 폐쇄의 어휘 범위에 외부 변수를 도입하는 데 사용됩니다. 2. 기본적으로 값별로 변수를 통과하고 & $ var 구문으로 참조하여 전달하십시오. 3. 여러 변수를 쉼표로 분리 할 수 있습니다. 4. 변수의 값은 폐쇄가 정의 될 때, 실행 될 때가 아니라 캡처됩니다. 5. 루프의 각 반복은 가변 값이 올바르게 캡처되도록 독립적 인 폐쇄 사본을 생성합니다. 따라서 사용은 클로저와 외부 환경 간의 상호 작용을 달성하는 핵심 메커니즘으로 코드를보다 유연하고 제어 가능합니다.

'Global'키워드 : PHP 범위 관리의 양날의 검 'Global'키워드 : PHP 범위 관리의 양날의 검 Jul 25, 2025 pm 05:37 PM

TheglobalkeywordinphPallowsfunctionStoaccceSvariblesvariblesfloglobalscope, butithoudsparlyingsificinglificantantpladbacks.1) ItenablesquickaccesstoconfigurationValuesinSmallorlegacyscripts.2) ItfitsproceduralcodebasseSwhereDep

변수가 사라지는 이유 : 범위 퍼즐에 대한 실용 가이드 변수가 사라지는 이유 : 범위 퍼즐에 대한 실용 가이드 Jul 24, 2025 pm 07:37 PM

변수 disPapeArduetoscoperules —2

발전기의 범위 및 '수율'키워드의 영향 발전기의 범위 및 '수율'키워드의 영향 Jul 25, 2025 am 04:45 AM

수율을 사용한 기능은 발전기가되고, 호출되면 즉시 실행되는 대신 발전기 개체를 반환합니다. 2. 수율 일시 정지 중에 발전기의 국부 변수는 파괴되지 않지만 발전기가 소진되거나 닫힐 때까지 발전기 프레임으로 계속 존재합니다. 3. 확장 된 가변 수명주기는 특히 큰 물체를 참조 할 때 메모리 사용량이 증가 할 수 있습니다. 4. 폐쇄와 결합 할 때, LEGB 규칙은 여전히 준수하지만, 루핑 변수의 늦은 바인딩 문제는 즉시 바인딩 (기본 매개 변수 값)에 의해 해결되어야합니다. 5. 생성기는 변수의 생존 시간을 연장하여 메모리와 동작에 영향을 미치지 만 어휘 스코프 규칙을 변경하지는 않습니다.

See all articles