为什么简写PHP开头语句不起作用?

Tis*_*sch 2 php macos

我试图将我的Mac设置为php服务器,然而,就像我到目前为止一样成功,我似乎遇到了一些麻烦.

我的PHP开放声明不起作用......但只是简写.

这有效:

<?php 
  phpinfo();
?>
Run Code Online (Sandbox Code Playgroud)

这不是:

<?
  phpinfo();
?>
Run Code Online (Sandbox Code Playgroud)

这是Mac 10.5.希望有人可以提供帮助.

谢谢

Aym*_*ieh 13

在php.ini中,将short_open_tag设置为On.

short_open_tag = On
Run Code Online (Sandbox Code Playgroud)

来自文档:

short_open_tag布尔值

告诉我们是否<? ?>应该允许PHP的开放标记的短格式().如果要将PHP与XML结合使用,可以禁用此选项以使用<?xml ?> 内联.否则,您可以使用PHP打印它,例如:<?php echo '<?xml version="1.0"'; ?>.此外,如果禁用,则必须使用PHP开放标记(<?php ?>)的长格式.

编辑:

short_open_tag从5.3.0开始的PHP_INI_ALL,这意味着它可以在任何地方更改(php.ini,.htaccess,在脚本中).在5.3.0之前它是PHP_INI_PERDIR,这意味着它可以在php.ini和.htaccess中设置.因此,即使您不控制服务器,也可以在大多数情况下更改其值.

但是,默认情况下此设置处于关闭状态.如果您要分发您的脚本,它将无法在大多数安装开箱即用.在这种情况下,搜索/替换切换到<?php一个好主意.