в PHP есть два вида операций if, которые мы можем написать:
- первый и известный
@if/@endif
.
example1:
if( $valid ) {
$x = 'yes';
} else {
$x = 'no';
}
- вторая - это краткая форма, известная как
ternary operator ($valid)
? yes: no;
это пример1, но с троичным оператором:
$x = $valid ? 'yes' : 'no';
давайте вернемся к вашему первому варианту использования, который соответствует этому:
<li class="{{ preg_match('/project/i', url()->current()) ? 'active' }}">
в этом случае использования у вас есть проблема с лексической структурой, потому что вы не уважаете ternary operator
, поэтому движок PHP не может разрешить то, что вы написали.
для получения дополнительной информации о троичный оператор