<? ?> 标签在 php 5.3.1 中不起作用

2022-08-30 12:51:25

我刚刚在我的linux服务器中安装了php 5.3.1,现在我以前用标签编写的旧工作根本不起作用。

请帮帮我..我该如何解决这个问题??


答案 1

不建议使用短标签 ()。应使用全长标记 ()。如果要使应用程序可移植,则可能不允许在另一台服务器上使用短的打开标记,因此您的应用程序将中断。<? ?><?php ?>

另一方面无论php.ini设置如何,echo速记始终可用,并且不会被弃用。您可以使用它来代替<?= $var ?><?php echo $var; ?>

作为最后的手段,要启用短标签,请通过以下方式之一启用ini指令(很可能并非所有方式都适合您):short_open_tag

  • 在 php 中设置指令.ini(推荐方式short_open_tag = On);

  • 调用您的代码;ini_set("short_open_tag", 1);

  • 将以下行添加到 .htaccess 文件中:

    php_value short_open_tag 1


对于默认行为:

------------------------------------------------
php.ini values : short_open_tag
------------------------------------------------

PHP 4, 5_0
 * Default behaviour   : on
 * php.ini-dist        : on
 * php.ini-recommended : on

PHP 5_1, 5_2:
 * Default behaviour   : on
 * php.ini-dist        : on
 * php.ini-recommended : off

PHP 5_3:
 * Default behaviour   : on
 * php.ini-development : off
 * php.ini-production  : off

以及不鼓励短开放标签的原因:

此指令确定 PHP 是否会将 和 标记之间的
代码识别为 PHP 源,应按此方式进行处理。几年来,人们一直
建议不要使用短标签“short cut”,
而是使用完整和标签组合。随着XML的广泛使用以及其他语言对这些标记的使用,服务器很容易
混淆,并最终在错误的上下文中解析错误的代码。但是,由于
此快捷方式已成为一项功能很长时间,因此目前仍
支持向后兼容性,但我们建议您不要使用它们。<??><?php?>

另请注意,此 RFC 拒绝了有关模板的短开放标记:http://wiki.php.net/rfc/shortags


答案 2

看起来您在 php.ini 文件中将short_open_tags设置为“Off”。尝试将其设置为“开”并重新启动apache。


推荐