作爲學習PHP的一部分,我試圖正式化它的語義。簡化這項任務的一個好方法就是儘可能多地理解它的語法,就像更多基本表達式的「語法糖」一樣。這樣,我就可以用更少的語法形式來定義它的語義。Desugaring PHP語法
PHP似乎有大量的可以去糖的語法。一些例子:
if/endif
等 「替代語法」 desugar到if { ... }
等for (expr1; expr2; expr3) { statements; }
desugars到expr1; while (expr2) { statements; expr3; }
。我認爲以下是真的:
$foo
只是意味着${'foo'}
。也就是說,通過名稱來引用一個變量只是通過對一個字符串的表達式進行求值而成爲更一般變量查找的一個實例。我想這:
<p>foo</p> <?php echo 5; ?> <p>bar</p>
desugars這樣:
echo "<p>foo</p>\n"; echo 5; echo "<p>bar</p>\n";
或一般,
?>blah<?php
只是意味着echo 'blah';
。
確實有很多許多其他這種情況。 我想列出一份綜合清單,並確認其準確無誤。 (而且我的任何例子都可能不準確,所以請糾正我!)
我通常寫'= 5 ?>'而不是'<?php echo 5; ?>' – saada
你真的覺得'for'是語法糖嗎? :) –
* * blah *示例完全不正確。 '?> blah <?php'不包含可執行的PHP部分。您將PHP完全從圖片中取出,只需將* blah *發送到正在使用的輸出管道/緩衝區等。 – Phil