Почти десять лет назад я писал про короткие теги и радовался включению короткого 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.