【问题标题】:Is there a better way to write this sentence in PHP / Laravel? [duplicate]有没有更好的方法在 PHP / Laravel 中编写这句话? [复制]
【发布时间】:2018-12-01 21:33:10
【问题描述】:

我一次又一次地进行这种测试,我觉得有一种更优雅的方法可以做到这一点。

(isset($country['capital'])) ? $country['capital'] : null

你能帮帮我吗?

【问题讨论】:

  • isset() 周围的括号没有用。在嵌套它们或字符串连接时将整个三元运算符放在括号之间。但是如果你有 PHP7,那么 null 合并运算符就是要走的路

标签: php laravel


【解决方案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 代码”。
  • 哦,对不起,我想我应该在回答中提到它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多