5

只是想知道,我有一个 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 中有短标签

4

3 回答 3

11

重要更新:

短标签不再被弃用。尽管 RFC 通过了,但还是引发了一些争议,PHP 内部小组拒绝实施它1。查看迁移指南进行确认:

https://www.php.net/manual/en/migration74.php


原帖:

短开放标签在 PHP 7.4 中已弃用,并将在 PHP 8 中删除。

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

此外,短回声 ( <?=) 不是short_open_tag5.4 的一部分。它始终可用,并且不是弃用的一部分。

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

于 2019-05-03T16:38:48.553 回答
5

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

于 2017-06-16T07:54:29.480 回答
1

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

<?php phpinfo(); ?>

检查加载的配置文件

于 2017-06-16T07:56:18.363 回答