[Laravel 5.7 - 新特性早知道] Blade 移除 `or` 语法,这位大佬居然解锁了新成就(只删代码)
这个是一个功能移除的变更,如果你准备升级到 5.7 版本,请提前做好改变,提案来自 PR?PR#23532 目前已针对 5.7 进行了合并。
在很早之前的一个需求中,Laravel 的 Blade 添加了 or
语法以支持没有设置的变量给一个默认值,例如:
{{ $name or 'Seven Du' }}
最终转换出来的代码就是:
{{ isset($name) ? $name : 'Seven Du' }}
但是在 PHP 7.0 中发布了一个新的语法(??
)可以达到相同的目的,因为 Laravel 5.6 开始,框架将 PHP 版本要求提高到了 PHP 7
。那么这位解锁 「只删除代码」成就的小哥哥觉得 or
Blade 语法现在式多余的了,就在 5.7 的提案中提交了 PR#23532 并得到了 Laravel 官方的认可。目前,该 PR 已经合并进入 5.7 版本的 Laravel Framework 中咯。
现在,我们使用 PHP 语法:
{{ $name ?? 'Seven Du' }}
达到的目的也是一样的咯。
?有计划升级到 Laravel 5.7 的小伙伴,并一直在使用 Blade 模板
or
语法的注意咯,可以先尝试做一下切换工作。
本作品采用《CC 协议》,转载必须注明作者和本文链接
Seven 的代码太渣,欢迎关注我的新拓展包 medz/cors 解决 PHP 项目程序设置跨域需求。
本帖由 Summer
于 6年前 加精
更新5.7之前要改模板里 or相关代码
@dreamsun 是的,替换为 php 7 语法
??
@medz 好的,多谢!!!!!
折腾啊 加大升级成本 应该都支持啊 为何非要一次性移除
@dynamohuang 应该是考虑到 PHP 7 的原因的~