文
局长
出品
OSC开源社区(ID:oschina)
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次。分析源码: