【问题标题】:Escape string/keyword in ternary conditional三元条件中的转义字符串/关键字
【发布时间】:2016-06-08 05:05:12
【问题描述】:

我使用 Laravel 作为我的 PHP 框架,并使用 Blade 作为我的视图的模板引擎。我喜欢保持我的代码整洁,所以我经常使用三元运算符来保持条件简短。

我有以下代码

<h4>{{ $product['instalments'] === 0 ? 'this or that' : 'something else' }}</h4>

问题是这会引发错误,我已将其范围缩小到在我的字符串中使用“或”,因为它在 Laravel 中用作关键字。我知道我可以使用 @if 指令重写它,但如果可能的话,我想避免这种情况。有谁知道我怎样才能避免这种情况,所以它不会尝试和评估?

【问题讨论】:

  • 写成'this o'.'r that'是个选项吗?
  • 干杯,连接字符串有效,但有点混乱,如果没有更清洁的解决方案,我可能会使用@if。不过干杯!

标签: php laravel escaping blade


【解决方案1】:

嫌疑人在$product['instalments'] === 0

在尝试从中获取元素之前,您需要先确保 $product 存在

也许您可以将代码更改为:

<h4>{{ empty($product['installments']) ? 'this or that' : 'something else' }}</h4>

【讨论】:

  • 问题在于包含“或”的字符串,因为 $product['instalments'] 返回 0
  • 不,php 不会混淆引号内的关键字。您可以编写简单的代码,例如 echo 'this or that';试一试
猜你喜欢
  • 2014-02-23
  • 2019-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-09
  • 1970-01-01
相关资源
最近更新 更多