Почти десять лет назад я писал про короткие теги и радовался включению короткого echo по умолчанию.
Сегодня меня спросили, что я думаю по поводу использования коротких тегов.
Их осталось на данный момент в PHP 7.4 два вида:
<? - короткая форма <?php. Включается через short_open_tag в php.ini.
<?= - короткая форма <?php echo. Доступна всегда.
Если с <?= всё ясно, тег доступен всегда и удобен при использовании в шаблонах, то с <? не всё так просто.
В PHP 7.4 его хотели убрать и почти убрали после положительного голосования за RFC. Но в итоге сначала предложили сделать это по-другому, а потом и вовсе не делать.
В результате в PHP 7.4 теги работают как и ранее. В PHP 8 тоже (но не факт, что так будет в релизе).
Стоит ли использовать <? - вопрос неоднозначный. Если у вас проект, который разворачивается только на ваши сервера, вы контролируете php.ini и никогда не забываете short_open_tag = On, то технически ничего ужасного в использовании коротких тегов нет. Если же вы делаете продукт, который можно поставить на свой сервер, такой как CMS или фреймворк, то использовать <? - плохая идея. Часть пользователей обязательно попробует развернуть ваш продукт в окружении, где у них нет возможности поправить php.ini.