首页 » 网站建设 » php字符插入技巧_PHP 82 弃用经由进程 在字符串插入变量语法

php字符插入技巧_PHP 82 弃用经由进程 在字符串插入变量语法

访客 2024-11-30 0

扫一扫用手机浏览

文章目录 [+]

文|局长

PHP 社区 4 月尾通过了一项只有一张反对票的提案,提案内容是在即将发布的 PHP 8.2 中,不再支持利用 ${} 在字符串中插入变量的语法(标记为弃用状态),并在 PHP 9 删除该语法。

php字符插入技巧_PHP 82 弃用经由进程  在字符串插入变量语法

目前 PHP 可通过以下办法在带有双引号 (") 和 heredoc 的字符串中插入变量。

php字符插入技巧_PHP 82 弃用经由进程  在字符串插入变量语法
(图片来自网络侵删)

直接插入变量: “$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${}instringsisdeprecatedvar_dump("${(foo)}");//Deprecated:Using${}(variablevariables)instringsisdeprecated

对付此提案的影响,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 希望实现的目标。

标签:

相关文章

微信第三方登录便捷与安全的完美融合

社交平台已成为人们日常生活中不可或缺的一部分。微信作为我国最受欢迎的社交软件之一,拥有庞大的用户群体。为了方便用户在不同平台间切换...

网站建设 2025-02-18 阅读0 评论0

广东高速代码表解码高速公路管理智慧

高速公路作为国家交通动脉,连接着城市与城市,承载着巨大的物流和人流。广东作为我国经济大省,高速公路网络密布,交通流量巨大。为了更好...

网站建设 2025-02-18 阅读0 评论0