有没有更好的方法在 PHP / Laravel 中编写这句话? [复制]
Posted
技术标签:
【中文标题】有没有更好的方法在 PHP / Laravel 中编写这句话? [复制]【英文标题】:Is there a better way to write this sentence in PHP / Laravel? [duplicate] 【发布时间】:2018-12-01 21:33:10 【问题描述】:我一次又一次地进行这种测试,我觉得有一种更优雅的方法可以做到这一点。
(isset($country['capital'])) ? $country['capital'] : null
你能帮帮我吗?
【问题讨论】:
isset()
周围的括号没有用。在嵌套它们或字符串连接时将整个三元运算符放在括号之间。但是如果你有 php7,那么 null 合并运算符就是要走的路
【参考方案1】:
从 PHP 7 开始你可以这样做
$country['capital'] ?? null;
【讨论】:
PHP 7.0 实际上【参考方案2】:您可以在Laravel Blade template 中使用or
运算符
$country['capital'] or null
而在 php 7 中,您可以使用 Null 合并运算符
$country['capital'] ?? null
From PHP docs
已添加空合并运算符 (??) 作为语法糖 对于需要结合使用三元的常见情况 伊塞特()。如果存在且不为 NULL,则返回其第一个操作数; 否则返回第二个操作数。
【讨论】:
or
不会做太多事情。这不是 Laravel,而是 PHP(除非我真的错过了关于 Laravel 重载 PHP 运算符的一些东西!?)。
“在 Laravel 中”到底是什么意思呢? Laravel 仍然是用 PHP 编写的。您是指一些模板系统吗?然后请参考文档。
所以您特指的是 Blade 模板语法。这只是 Laravel 的一个特定子组件,并不普遍适用于所有“Laravel 代码”。
哦,对不起,我想我应该在回答中提到它以上是关于有没有更好的方法在 PHP / Laravel 中编写这句话? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
有没有更好的方法来处理 laravel 和 vue js 的 axios 错误
有没有更好的方法来使用存储库在 Laravel 中分配 Eloquent 关系?