只是想知道,我有一个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中有短标签
答案 0 :(得分:2)
PHP 7.4中不推荐使用短打开标记,而PHP 8中将删除这些标记。
https://wiki.php.net/rfc/deprecate_php_short_tags
从5.4开始,短回波(<?=
)也不是short_open_tag
的一部分。它始终可用,而不是弃用的一部分。
答案 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
答案 2 :(得分:0)
是否加载了正确的php.ini?
<?php phpinfo(); ?>
检查加载的配置文件