-3

最近、サーバー(ローカルのWAMPと本番ボックスをPHP 5.4にアップグレード)をアップグレードしましたが、セミコロンの使用に悩まされています。しかし、このコードがローカルで、エラーなしで本番ボックスでどのように実行され、エラー報告がE_ALLに設定されているかを取得しないでください...

私は私が必要だと思った; 後<? phpinfo ?><-明らかにそうではありません!

これもエラーを生成しません。<? 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?

4

1 に答える 1

2

PHPマニュアルの「命令の分離」によると:

PHPコードのブロックの終了タグは、自動的にセミコロンを意味します。PHPブロックの最後の行を終了するセミコロンは必要ありません。

于 2012-11-26T04:48:42.643 に答える