真正想知道但從未發現的東西是PHP中的捷徑。PHP - If/else,for,foreach,while - 沒有大括號?
我目前正在用一個foreach
循環編寫一個函數,其中只有一條語句。我試圖忽略大括號,就像你在if/else控制結構中可以做的那樣,它可以工作。沒有錯誤。
foreach($var as $value)
$arr[] = $value;
現在我試着用同樣的方法,但在裏面放了一個if/else塊。再次,工作,沒有錯誤。
foreach($var as $value)
if(1 + 1 == 2) {
$arr[] = $value;
};
然後,我想,「爲什麼這個工作?」並省略了結束分號。還在工作。所以我試圖在foreach循環中使用if/else語句而不使用大括號,並且仍然可以正常工作並且沒有錯誤。但是,foreach循環現在真的關閉/結束了嗎?
foreach($var as $value)
if(1 + 1 == 2)
$arr[] = $value;
至少我再次省略了閉合分號和(如預期)發生了分析錯誤。
所以我最大的疑問是:什麼時候可以省略花括號和結構/循環/函數?我知道我絕對可以在if
和else
這樣做。但是while
,for
和foreach
呢?
是的,我知道這是不是安全,智能,無論無需花括號代碼和有像$condition ? true : false;
和if: doSomething(); endif;
,endfor;
和endforeach;
速記。我不想了解shorthands我只想了解何時何地可以省略大括號的條件。
順便說一句,沒有必要在右大括號後面加分號。它的語法含義是在它們之間添加一個空的語句。除了在C和C++中聲明'struct'和'class'外,所有類C語言都是如此。 – Eric 2012-01-04 12:06:10
您需要了解語句和表達式之間的區別,以瞭解何時可以忽略卷積。然後,對錶達內聚的強烈理解仍然是必要的。 – mario 2012-01-04 12:10:56
的工作原理與你所說的一樣:) – 2012-01-04 11:49:54