PHP가 큰따옴표로 묶인 문자열에서 연관 배열 요소의 직접 보간을 허용하는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-01 06:45:02
원래의
657명이 탐색했습니다.

Why Does PHP Allow Direct Interpolation of Associative Array Elements in Double-Quoted Strings?

PHP에서 연관 배열 보간: 예상치 못한 동작

PHP에서 연관 배열 요소를 보간할 때 특정 동작이 놀라움을 불러일으킬 수 있습니다. 다음 예를 살펴보세요.

<code class="php">$ha = array('key1' => 'Hello to me');

print $ha['key1'];   // correct (usual way)
print $ha[key1];     // Warning, works (use of undefined constant)

print "He said {$ha['key1']}"; // correct (usual way)
print "He said {$ha[key1]}";   // Warning, works (use of undefined constant)

print "He said $ha['key1']";   // Error, unexpected T_ENCAPSED_AND_WHITESPACE
print "He said $ha[ key1 ]";   // Error, unexpected T_ENCAPSED_AND_WHITESPACE
print "He said $ha[key1]";     // !! correct (How Comes?)</code>
로그인 후 복사

흥미롭게도 마지막 줄은 유효한 PHP 코드인 것 같습니다. 왜 그럴까요?

설명

이상해 보이는 구문을 신뢰하세요. 공식 문서에 따르면 모든 변수 보간 방법이 지원됩니다. 여기에는 중괄호로 묶지 않고 큰따옴표로 묶인 문자열 내의 배열 요소에 액세스하는 것이 포함됩니다.

이 특정 동작의 이유는 완전히 명확하지 않을 수도 있지만, 불일치가 필연적으로 발생하는 PHP의 역사적 발전에서 비롯됩니다. 그럼에도 불구하고 이 기능은 신뢰할 수 있으며 유효한 PHP 구문으로 널리 받아들여집니다.

위 내용은 PHP가 큰따옴표로 묶인 문자열에서 연관 배열 요소의 직접 보간을 허용하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!