出品
开源中国
文
局长
PHP社区4月底通过了一项只有一张反对票的提案,提案内容是在即将发布的PHP8.2中,不再支持使用${}在字符串中插入变量的语法(标记为弃用状态),并在PHP9删除该语法。
目前PHP可通过以下方式在带有双引号(")和heredoc的字符串中插入变量。
直接插入变量:“$foo”
在变量外添加花括号:“{$foo}”
在$符号后面添加花括号:“${foo}”
定义可变的变量语法(“${expr}”,等同于(string)${expr}
提交该提案的开发者IlijaTovilo认为,第1和第2种方式各有利弊。第3和第4种写法则很容易混淆,并且4具有完全不同的语义(variablevariables),极少使用这种方式在字符串中插入变量。
因此,IlijaTovilo提交的RFC正是建议在PHP8.2中弃用上述3和4的语法,并在PHP9.0中将其删除。
var_dump("${foo}");//Deprecated:Using${}instringsisdeprecatedvar_dump("${(foo)}");//Deprecated:Using${}(variablevariables)instringsisdeprecated
对于此提案的影响,IlijaTovilo通过对Packagegist上的Top仓库进行分析得出:上述3的语法有次被使用,4只有0次。分析源码: