我以为PHP需要半冒号?

时间:2012-11-26 04:45:38

标签: php

我最近升级了我的服务器(本地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?

1 个答案:

答案 0 :(得分:2)

根据"Instruction Separation" in the PHP manual

  

PHP代码块的结束标记自动表示分号;你不需要用分号来终止PHP块的最后一行。