Expecting statement в phpStorm при использовании альтернативного синтаксиса управляющих структур. Как победить?

Суть вопроса - При использовании альтернативного синтаксиса управляющей структуры if на примере :
<?php if ($var) : ?>
    <!--html code -->
<?php else : ?>
    <!--html code -->
<?php endif; ?>

условие <?php else : ?> подчеркивается красным и появляется всплывающее сообщение "Expecting statement" (скриншот)
daad97387c7d4d3e8952b6a5620023fe.png
Причем в браузере никак данная ошибка не отображается, только в IDE неприятные красные подчеркивания.
Но если использовать традиционный синтаксис, то все хорошо:
<?php if ($var) {  ?>
    <!--html code -->
<?php } else { ?>
    <!--html code -->
<?php }  /* if ($var) */?>

(скриншот)
699bdfb3193a498291986b95b78d927f.png
---
Все это пишется в файле с расширением .php , но среди html кода (вставка данных в шаблон).
ps. Можно конечно пользоваться и вторым вариантом + этого в том, что парные скобочки подсвечиваются почти во всех современных средах, от простого NOTEPAD++ и до phpStorm. Но все же первый вариант более красивый, более читаемый что-ли.
---
Только осваиваю данную умную IDE. Помогите, может быть я что-то не так делаю?
  • Вопрос задан
  • 5020 просмотров
Решения вопроса 2
@Tumass
Веб-разработчик
Есть такая проблема, воспроизвести можно следующем образом
<? if (....): ?>
....
<? endif: ?>

После чего вставить в середину
<? else: ?>
В результате будет ошибка.
Как вариант писать/переписать по очереди if() else endif.
<? if (....): ?>
....
<? else: ?>
....
<? endif ?>


Сильно не заморачивался, возможно есть и более "правильный путь"
Ответ написан
redflasher
@redflasher
Full-stack developer
Мне помогло отключение настройки Template data languages. Сначала стояло AngularJS и такой баг возникал.
Убрал - и баг исчез.5b9ce656abeca043844753.png
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
AloneCoder
@AloneCoder
[object Object]
На то она и умная IDE, что-то значит выше не так. Может, например, endforeach не в том месте
Ответ написан
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Сам никогда не замечал, видимо потому что сразу строю нужную логику и ничего не подсвечивается. Услышал про этот баг от коллеги, заглянул в багтрекер - вуаля, проблема старая как мир. Уже годами не лечится, хотя отмечена как major issue.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽