-2
@foreach($id_cards as $id_card)
    <option value="{{$id_card->id}}" {{isset($card_id) ? ($id_card->id == $card_id ? 'selected': old("id_card") == $id_card->id ? "selected":""):""}}>{{$id_card->title}}</option>
@endforeach

错误是:“a ? b : c ? d : e不推荐使用无括号。使用(a ? b : c) ? d : ea ? b : (c ? d : e)

4

1 回答 1

1

我认为这清楚地表明您应该在此处添加额外的括号:

$id_card->id == $card_id ? 'selected': old("id_card") == $id_card->id ? "selected":""

例如:

$id_card->id == $card_id ? 'selected': (old("id_card") == $id_card->id ? "selected":"")

正如您在PHP 手册中所读到的:

建议避免“堆叠”三元表达式。与其他语言相比,在单个语句中使用多个三元运算符时,PHP 的行为并不明显。事实上,在 PHP 8.0.0 之前,三元表达式是从左到右计算的,而不是像大多数其他编程语言那样从右到左计算。

于 2020-12-23T22:56:55.137 回答