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

dhv*_*ani 34 php php-shorttags

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

请帮帮我..我怎么解决这个?

Fel*_*ing 71

要启用短标记,请short_open_tag使用以下方法之一启用ini指令(很可能并非所有方法都适合您):

  • short_open_tag = On在php.ini中设置指令(推荐方式);
  • 打电话给ini_set("short_open_tag", 1);你的代码;
  • 将以下行添加到.htaccess文件中:

    php_value short_open_tag 1


更多解释:

不建议您使用短标签(<? ?>).你应该使用全长标签(<?php ?>).不推荐使用短语法,如果要使应用程序可移植,则可能在其他服务器上不允许使用短打开标记,因此应用程序将中断.

在另一方面,回声速记<?= $var ?>在默认情况下,因为PHP 5.4启用不管php.ini设置并不会过时.你可以用它代替<?php echo $var; ?>

并且对于默认行为:

------------------------------------------------
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
Run Code Online (Sandbox Code Playgroud)

以及阻止短开标签的原因:

该指令确定PHP是否将识别PHP源代码
<?和代码之间的?>代码,这些代码应该如此处理.
多年来一直建议您不要使用短标签"捷径",
而是使用完整<?php?>标签组合.随着XML的广泛使用以及其他语言对这些标记的使用,服务器很容易
混淆并最终在错误的上下文中解析错误的代码.但是因为
这个捷径已经成为这么长时间的一个功能,它目前仍然
支持向后兼容,但我们建议你不要使用它们.

另请注意,这拒绝了RFC关于模板的短开标签:http://wiki.php.net/rfc/shortags

  • 正如另一种意见一样,没有任何理由可以避免使用非常有用的`<?=?>`语法.从php6开始,这不是真的.不要再煽动这种疯狂的谣言了 (27认同)
  • 请**你有一个来源说它是真的吗?从你上面链接的同一个讨论中,你有不少于Rasmus自己的话"我们决定不在PHP 6中删除它们". (6认同)
  • @col.Shrapnel:好的,我想到目前为止我会坚持这个http://stackoverflow.com/questions/2413661/php6-is-short-open-tag-removed-or-deprecated-or-无论如何,为什么不是你想出这个?我只能告诉我所知道的.现在我不得不寻找一个确认你是对的,虽然你可以把它给我.这就是我所要求的.这就是为什么我认为你也不确定这一点.否则你可能只是说"这里读了这个",讨论就结束了. (4认同)
  • @col.弹片:你有一个消息来源说它不是真的吗?根据我的信息,它似乎至少被弃用了. (2认同)

Yo-*_*o-L 10

看起来你的php.ini文件中的short_open_tags设置为"Off".尝试将其设置为"On"并重新启动apache.