':='의 전역 변수 할당 동작

PHPz
풀어 주다: 2024-02-09 14:50:25
앞으로
752명이 탐색했습니다.

:=의 전역 변수 할당 동작

PHP 편집자 Xiaoxin이 ":="의 전역 변수 할당 동작을 소개합니다. 이전 버전의 PHP에서는 전역 변수에 대한 할당을 "global" 키워드를 사용하여 선언해야 했습니다. 그러나 PHP 버전 7.4에서는 전역 변수 할당을 위한 새로운 구문 ":="을 도입했기 때문에 "global" 키워드를 사용하는 단계를 생략하고 전역 변수에 값을 보다 간결하게 할당할 수 있습니다. 이 새로운 기능은 코드의 가독성과 유지 관리성을 향상시킬 뿐만 아니라, 불필요한 코드의 양을 줄이고 전역 변수를 보다 편리하게 조작할 수 있게 해줍니다. 이 새로운 기능을 자세히 살펴보겠습니다!

질문 내용

main 函数 作用域中使用了 :=,全局 level 仍被分配来自 getlevel()에 있는 코드가 해당 값을 반환하는 경우에도 마찬가지입니다. 언어 사양을 사용하여 이것이 어떻게 예측 가능하고 문서화되었는지 설명할 수 있는 사람이 있습니까? 내 생각은 사양을 더 잘 읽는 것이었지만 분명히 그렇게하지 않았습니다.

코드: https://go.dev/play/p/4pz0vl-2snn

65bcadd4058

출력:-

info <nil>
print: info
로그인 후 복사

해결 방법

귀하의 예에서 := 实际上引入了一个名为 level의 새 지역 변수는 사양에 따라입니다. 전역 범위가 모든 함수 범위와 다르기 때문입니다.

짧은 변수 선언은 변수가 원래 동일한 블록(또는 블록이 함수 본문인 경우 인수 목록)에서 동일한 유형으로 선언된 경우 변수를 다시 선언할 수 있습니다.

설명된 동작이 나타나는 이유는 level 的使用实际上都没有引用全局变量。 main 中的用法是从 := 中新增的局部变量,print 中的用法是函数参数。删除参数(在声明和调用站点中),您将看到 printprint: 뒤에 빈 문자열을 인쇄하기 때문입니다.

위 내용은 ':='의 전역 변수 할당 동작의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿