我最近升级了我的服务器(本地WAMP和生产箱到PHP 5.4),并且使用了冒号,我不抱怨我不喜欢;但是没有得到这个代码如何在本地和没有错误的生产盒上运行,并且错误报告被设置为E_ALL ......
我以为我需要一个; <? phpinfo ?>
之后&lt; - 显然不是!
这不会产生错误:<? print_r(apache_get_modules()) ?>
这也适用于没有分号:<? foreach (getallheaders() as $name => $value) printf("%s:%s \n", $name, $value, PHP_EOL) ?>
所有这些代码都不会产生错误,而且就像遗漏了我的朋友一样;我想知道WTF正在发生吗?
是因为我的PHP 5.4版本还是做phpinfo,print_r和printf不需要半冒号?????
所有这些代码都运行没有错误:
<div id="tabs">
<div id="tab_one"><pre>Server Variables: <? print_r($_SERVER) ?></pre></div>
<div id="tab_two"><pre>Server and PHP interface: <?= PHP_SAPI ?></pre></div>
<div id="tab_three"><pre>Apache Modules: <? print_r(apache_get_modules()) ?></pre></div>
<div id="tab_four"><pre><?= apache_get_version() ?></pre></div>
<div id="tab_five"><pre><? foreach (getallheaders() as $name => $value) printf("%s:%s \n", $name, $value, PHP_EOL) ?></pre></div>
<div id="tab_six">
<p><a href="/server-status?refresh=3" target="_blank">Server Status</a></p>
<br />
<p><a href="/server-info/" target="_blank">Server Info</a></p>
</div>
</div>
Cornfused?
答案 0 :(得分:2)
根据"Instruction Separation" in the PHP manual:
PHP代码块的结束标记自动表示分号;你不需要用分号来终止PHP块的最后一行。