PHP短手标签7.x.

时间:2017-06-16 07:45:09

标签: php php-shorttags

只是想知道,我有一个codeigniter项目,我被要求做一些工作。我也试图(我可以)准备升级到php 7.x(目前在5)的项目。

我很困惑的一件事是使用php短标签。我爱他们,但似乎他们在7岁被删除了?

所以我的问题是,我应该删除它们吗?问题是,它们使代码更具可读性,为什么它们会删除它?

例如:

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

VS

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

我更喜欢第二个版本,但每当我在php7上运行我的项目时,这些都不起作用。我错过了什么或者他们真的被删除了吗?

仅供参考:我在php.ini中有短标签

3 个答案:

答案 0 :(得分:2)

PHP 7.4中不推荐使用短打开标记,而PHP 8中将删除这些标记。

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

从5.4开始,短回波(<?=)也不是short_open_tag的一部分。它始终可用,而不是弃用的一部分。

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

答案 1 :(得分:1)

速记标签仍然在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

答案 2 :(得分:0)

是否加载了正确的php.ini?

<?php phpinfo(); ?>

检查加载的配置文件