有没有更好的方法在 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 关系?

如何在Laravel刀片模板中设置变量

在 Laravel 中按用户名查找用户

有没有更好的方法然后使用 Lynx 在 PHP 中可靠地将 HTML 转换为纯文本

php开发小程序用啥框架