目前 PHP 可通过以下方式在带有双引号 (") 和 heredoc 的字符串中插入变量。
创新互联拥有网站维护技术和项目管理团队,建立的售前、实施和售后服务体系,为客户提供定制化的成都网站建设、网站制作、网站维护、四川主机托管解决方案。为客户网站安全和日常运维提供整体管家式外包优质服务。我们的网站维护服务覆盖集团企业、上市公司、外企网站、商城网站建设、政府网站等各类型客户群体,为全球上1000家企业提供全方位网站维护、服务器维护解决方案。
提交该提案的开发者 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} 语法在字符串中插入变量,例如 bash 和 JavaScript(在模板字面量 Template Literals 中)。但它们的行为与在 PHP 中的不同。在 PHP 中,这种语法意味着定义可变的变量。在 JavaScript 中,它支持任意表达式。在 PHP 目前的形式中,上述选项 3 和 4 的用途有限,并且对于使用其他相似语法的编程语言的开发者来说,两者行为完全不同,因此会感到困惑。
未来 Ilija Tovilo 希望支持如下语法:
var_dump("{$:func()}")
他认为,如果决定这样做,那么有必要先删除不太有用的选项,以避免进一步增加混乱。这就是 Ilija Tovilo 提交此 RFC 希望实现的目标。
本文转自OSCHINA
本文标题:PHP 8.2 弃用通过 ${} 在字符串插入变量语法
本文地址:https://www.oschina.net/news/195055/deprecate-dollar-brace-string-interpolation
本文题目:PHP8.2弃用通过${}在字符串插入变量语法
分享网址:http://www.shufengxianlan.com/qtweb/news27/29877.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联