[英]I thought PHP required semi colons?
我最近將我的服務器(本地 WAMP 和生產盒升級到 PHP 5.4)並且對分號的使用感到困惑,我不是在抱怨我不喜歡 ; 但不知道此代碼如何在本地和在沒有錯誤的生產盒上運行,並且錯誤報告設置為 E_ALL ...
我以為我需要一個 ; <? phpinfo ?>
<? phpinfo ?>
<-- 顯然不是!
這也不會產生錯誤: <? print_r(apache_get_modules()) ?>
<? print_r(apache_get_modules()) ?>
這也可以不使用分號: <? foreach (getallheaders() as $name => $value) printf("%s:%s \\n", $name, $value, PHP_EOL) ?>
<? 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>
糊塗了?
根據PHP 手冊中的“指令分離” :
PHP 代碼塊的結束標記自動暗示一個分號; 你不需要用分號來結束 PHP 塊的最后一行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.