Теги PHP Short hand 7.x

Просто интересно, у меня есть проект codeigniter, над которым меня попросили поработать. Я также пытаюсь (где я могу) подготовить проект для обновления до php 7.x (в настоящее время на 5).

Одна вещь, которая меня смущает, это использование коротких тегов php. Я люблю их, но кажется, что они удаляются в 7?

Итак, мой вопрос, я должен удалить их? Проблема в том, что они делают код намного более читабельным, почему они его удаляют?

Так, например:

<?php if ($product->price_discounted > 0)
{
    echo "<p class='discounted price'>" . $product->price_discounted . "</p>" 
}
?>

против

<? if ($product->price_discounted > 0): ?>
    <p class='discounted price'><?= $product->price_discounted ?></p>
<? endif; ?>

Я бы предпочел вторую версию, но всякий раз, когда я запускаю свой проект на php7, они не работают. Я что-то упустил или они действительно удалены?

К вашему сведению: у меня есть короткие теги в php.ini

2 ответа

Решение

Правильно ли загружается php.ini?

<?php phpinfo(); ?>

Проверьте загруженный файл конфигурации

Короткие открытые теги устарели в PHP 7.4 и будут удалены в PHP 8.

https://wiki.php.net/rfc/deprecate_php_short_tags

Также короткое эхо (<?=) не является частью short_open_tag по состоянию на 5.4. Он всегда доступен и не является частью амортизации.

https://wiki.php.net/rfc/shortags

Сокращенные теги все еще в PHP7, удаляемые теги:

  • <% opening tag
  • <%= opening tag with echo
  • %> closing tag
  • (<script\s+language\s*=\s*(php|"php"|'php')\s*>)i opening tag
  • (</script>)i closing tag

https://wiki.php.net/rfc/remove_alternative_php_tags

Другие вопросы по тегам