空格空間在PHP語法中通常被忽略,但有幾個地方不能在不影響意義(和結果)的情況下放置它們。PHP:空白空間
一個例子是:
$a = 5.5; // five and a half (float)
$b = 5 . 5; // "55" (string)
你知道的任何其他的例子嗎?
的問題是不是關於爲什麼是這種方式工作,但什麼是情況下,當省略或放置空白改變了計劃,但兩個版本的語法正確。
空格空間在PHP語法中通常被忽略,但有幾個地方不能在不影響意義(和結果)的情況下放置它們。PHP:空白空間
一個例子是:
$a = 5.5; // five and a half (float)
$b = 5 . 5; // "55" (string)
你知道的任何其他的例子嗎?
的問題是不是關於爲什麼是這種方式工作,但什麼是情況下,當省略或放置空白改變了計劃,但兩個版本的語法正確。
在你的例子中,你打破了兩個單一的詞法標記(有點像打破function
到func tion
,空白確實沒有被這樣忽略)。這並不是很有意思,當事情突破時你可以想出很多例子,唯一有趣的任務是嘗試找到一個例子,其中工作(即不是語法錯誤),但不同,例如:
$a = $x++ + $y; // x is incremented
$b = $x+ + + $y; // x is not incremented
那個人讓我狂暴。我提出末日的空白:
function foo() {
print "I'm foo.";
}
if (something()) {
foo();
}
執行時,將錯誤是:
Fatal error: Call to undefined function foo() on line 6
一個小時左右後,我發現,該錯誤消息實際上說:
Fatal error: Call to undefined function foo() on line 6
注意雙空格:
function foo()
原來,由拷貝/粘貼上面的代碼(與highlight_string
格式化的),一個非間斷空間
,或0xA0
是在標識符可接受,所以該函數調用是0xA0foo()
代替foo()
。
您不能在空格的數字中間!天哪!
$x = 10 3.5; //syntax error
如果你把一個空間在運營商的中間,它不再是運營商!
if (true & & true) echo 'true'; //syntax error
如果我把一個空間在我的字符串的中間,這是不一樣的串!
echo "Hel lo World"; //does NOT print "Hello World"!
很抱歉,但這個問題很可笑,因爲你當然不能在令牌的中間扔空間既沒有改變行爲或斷碼。幾乎與其他所有編程和書面語言一樣。
5.5
是一個數字,5 . 5
是一個字符串,因爲.
是字符串連接運算符。這只是語言的語法。
這是一個很好的;-) – 2011-02-03 10:32:31
是的,以及所有其他PHP和其他語言的書面和口頭怪癖。對不起,這個問題是什麼? – PurplePilot 2011-02-03 10:34:30
第二種情況的一個很好的變體是`$ b = 5 ... 5;` - 儘管它構成了更多的情況下空間將有助於可讀性。 – mario 2011-02-03 10:39:35