@if工作时,三元运算符引发错误

时间:2019-06-06 10:50:11

标签: laravel laravel-blade

我在刀片上工作,而我的三元运算符抛出错误却遇到了问题

  

语法错误,意外的是')'(查看:C:\ xampp \ htdocs \ drm \ resources \ views \ includes \ sidebar.blade.php)意外的“(”

  

<li class="<?php echo e(preg_match("/project/i", url()->current()) ? 'active'); ?>">

这不起作用

<li class="{{ preg_match('/project/i', url()->current()) ? 'active' }}">

这有效

<li class="@if(preg_match("/project/i", url()->current()))  {{'active'}} @endif">

这是一个测试用例,preg_match("/project/i", url()->current()返回1或true

4 个答案:

答案 0 :(得分:2)

尝试添加其他条件

<li class="{{ preg_match('/project/i', url()->current()) ? 'active' : '' }}">

答案 1 :(得分:1)

您需要使用其他

<li class="{{ (preg_match('/project/i', url()->current())) ? 'active' : '' }}">

答案 2 :(得分:1)

通过添加冒号来尝试类似的操作:如果preg_match('/ project / i',url()-> current())的值为true,则它将评估为“活动”,否则

@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *)
extension View {

    /// Returns a uniquely identified view that can be inserted or
    /// removed.
    @inlinable public func id<ID>(_ id: ID) -> IDView<Self, ID> where ID : Hashable
}

我编辑了它。希望对您有帮助

答案 3 :(得分:1)

在PHP中,我们可以编写两种if操作:

  1. 第一个和已知的是@if/@endif

示例1:

if( $valid ) {
    $x = 'yes';
} else {
    $x = 'no';
}
  1. 第二个是缩写为ternary operator ($valid) ? yes: no;

这是example1,但具有三元运算符:

$x = $valid ? 'yes' : 'no';

让我们回到第一个与此匹配的用例:

<li class="{{ preg_match('/project/i', url()->current()) ? 'active' }}">

在此用例中,您有一个词汇结构问题,因为您不遵守ternary operator,因此PHP引擎无法解析您编写的内容。

有关ternary operator

的更多信息