>  기사  >  백엔드 개발  >  PHP 8.2는 더 이상 ${}를 사용하여 문자열에 변수를 삽입하는 것을 지원하지 않습니다.

PHP 8.2는 더 이상 ${}를 사용하여 문자열에 변수를 삽입하는 것을 지원하지 않습니다.

青灯夜游
青灯夜游앞으로
2022-05-11 11:33:373739검색

PHP 커뮤니티는 4월 말 단 한 번의 반대 투표로 제안을 통과시켰습니다. 제안 내용은 곧 출시될 PHP 8.2에서는 ${}를 사용하여 문자열에 변수를 삽입하는 구문이 더 이상 지원되지 않는다는 것입니다( 더 이상 사용되지 않음)으로 표시되었으며 이 구문은 PHP 9에서 제거되었습니다.

"PHP

현재 PHP는 다음과 같은 방법으로 큰따옴표(")와 heredoc를 사용하여 문자열에 변수를 삽입할 수 있습니다. ") 和 heredoc 的字符串中插入变量。

  • 直接插入变量: “$foo”

  • 在变量外添加花括号: “{$foo}”

  • $ 符号后面添加花括号: “${foo}”

  • 定义可变的变量语法 ( “${expr}”,等同于 (string) ${expr}

提交该提案的开发者 Ilija Tovilo 认为,第 1 和第 2 种方式各有利弊。第 3 和第 4 种写法则很容易混淆,并且 4 具有完全不同的语义 (variable variables),极少使用这种方式在字符串中插入变量。

因此,Ilija Tovilo 提交的 RFC 正是建议在 PHP 8.2 中弃用上述 3 和 4 的语法,并在 PHP 9.0 中将其删除。

var_dump("${foo}");
// Deprecated: Using ${} in strings is deprecated
 
var_dump("${(foo)}");
// Deprecated: Using ${} (variable variables) in strings is deprecated

对于此提案的影响,Ilija Tovilo 通过对 Packagegist 上的 Top 1000 仓库进行分析得出:上述 3 的语法有 267 次被使用,4 只有 0 次。

分析源码:https://gist.github.com/iluuu1994/05427dd74100af8e41ebff3d4201742c

Ilija Tovilo 认为,许多其他编程语言也使用 ${foo}

와 동일 제안서를 제출한 개발자인 Ilija는 Tovilo가 다음과 같이 믿습니다. 1번째와 2번째 방법은 각각의 장점과 단점이 있습니다. 3번째와 4번째 작성 방법은 의미(변수 변수)가 완전히 다릅니다. 따라서 이 방법은 문자열에 변수를 삽입하는 데 거의 사용되지 않습니다. , Ilija Tovilo가 제출한 RFC는 PHP 8.2에서 위의 3과 4의 구문을 더 이상 사용하지 않고 PHP 9.0에서 제거할 것을 제안합니다. 🎜
var_dump("{$:func()}")
🎜 이 제안의 영향과 관련하여 Ilija Tovilo는 상위 1000개 저장소에 대한 Packagegist 분석에 다음과 같이 언급했습니다. 위의 3가지 구문은 267번 사용되었고, 4번은 0번만 사용되었습니다. 🎜
🎜소스 코드 분석: https://gist.github.com/iluuu1994/05427dd74100af8e41ebff3d4201742c🎜
🎜Ilija Tovilo는 믿습니다. 다른 많은 프로그래밍 언어도 bash 및 JavaScript(템플릿 리터럴)와 같은 문자열에 변수를 삽입하기 위해 ${foo} 구문을 사용하지만 템플릿 리터럴과 동일하게 동작합니다. PHP에서 이 구문은 가변 변수를 정의하는 것을 의미합니다. JavaScript에서는 임의의 표현식을 지원합니다. PHP의 현재 형식에서는 위의 옵션 3과 4가 제한적으로 사용되며 다른 목적으로는 유용하지 않습니다. 유사한 구문을 사용하면 두 동작이 완전히 다르기 때문에 혼란스럽습니다. 🎜🎜향후 Ilija Tovilo는 다음 구문을 지원하기를 희망합니다. 🎜rrreee🎜 그는 이 작업을 수행하기로 결정한 경우 먼저 덜 구체적인 구문을 제거해야 한다고 믿습니다. 추가 혼란을 피하기 위한 유용한 옵션입니다. 이것이 바로 Ilija Tovilo가 RFC를 제출하여 달성하고자 하는 것입니다. 🎜🎜추천 학습: "🎜PHP 비디오 튜토리얼🎜"🎜

위 내용은 PHP 8.2는 더 이상 ${}를 사용하여 문자열에 변수를 삽입하는 것을 지원하지 않습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 OSC开源社区에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제