Теги 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. Он всегда доступен и не является частью амортизации.
Сокращенные теги все еще в 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