新服务器上PHP的速记语法无法使用?

6

可能是重复问题:
<? ?>在php 5.3.1中无法使用

我通常使用简写语法。

 <?="hello";?>

代替
 <?php echo "hello";?>

我创建了一个开发服务器并安装了与之相同版本的php,但简写方法无法运行,为什么?我该如何解决?

我本来想在服务器网站上询问,但我认为这与php的一些设置有关。

我正在运行Linux Fedora 14。


除非您知道此问题的关键短语(即 <? 与 <?php 是“简写”),否则这是一个难以通过网络搜索解决的问题。 - JD.
3个回答

16

您需要在配置文件 php.ini 中启用 short_open_tag 选项(可能位于 /etc/ 目录中)。正如您所发现的那样,短标签默认是禁用的。

编辑:是的,正如 @Sebastian P 指出的那样,这个问题以前已经被问过了。


2
在Apache目录中找到您的php.ini文件,并将short_open_tag = On更改为开启状态。

2
您可能需要启用短标签,这是一个ini设置,正如您所想的那样。
需要注意的是,一些人认为短标签不是个好主意(包括我自己)。我知道它们很方便,因此很诱人,但这个问题说明了不使用它们的原因——如果您移动代码并且不能启用它们(无论出于什么原因),那该怎么办?最具可移植性的代码不使用短标签。如果您需要打开它们以使旧代码工作,则必须这样做。如果您正在设置服务器以启动新项目,则应将其关闭!
文档:http://www.php.net/manual/en/ini.core.php#ini.short-open-tag

我完全同意现在的看法。我是一个自学成才的程序员,曾经看到一个朋友使用它们并说这没什么大不了的。现在我后悔了。我在php.ini中打开了short_open_tag,但它仍然无法正常工作。 - Darius
1
你重启了服务器吗?在 INI 更改后必须重新启动。此外,请查看您的 phpinfo() 并确保您正在编辑的 INI 是服务器正在使用的 INI。只要您使用的是 PHP5 或更高版本,这是一个 PER_DIR 设置,因此您还需要验证没有 .htaccess 文件覆盖您的 INI 设置。 - Chris Baker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接