開門見山的說,用 {} 的寫法運行起來是完全一樣的,舉例:
vs
會顯示出一樣的結果,而php在解析語法的時候,會將第二種寫法,也就是else if剖析成:
不過如果用colon的寫法則會有所不同,以php官方文件的程式碼為例:
可以看到上方寫成else if分開,運行會parse error,下方連在一起的則不會。
psr-2的規範也說了必須連在一起:
綜此上述,elseif目前是php裡判斷是的最佳選擇。
參考資料:
http://www.php-fig.org/psr/psr-2/#if-elseif-else
http://www.php.net/manual/en/control-structures.elseif.php
http://stackoverflow.com/questions/3662412/are-elseif-and-else-if-completely-synonymous
$a = 2; if ($a == 1) { } elseif ($a == 2) { }
vs
$a = 2; if ($a == 1) { } else if ($a == 2) { }
會顯示出一樣的結果,而php在解析語法的時候,會將第二種寫法,也就是else if剖析成:
if ($a == 1) { } else { if ($a == 2) { } }
不過如果用colon的寫法則會有所不同,以php官方文件的程式碼為例:
/* Incorrect Method: */ if($a > $b): echo $a." is greater than ".$b; else if($a == $b): // Will not compile. echo "The above line causes a parse error."; endif;
/* Correct Method: */ if($a > $b): echo $a." is greater than ".$b; elseif($a == $b): // Note the combination of the words. echo $a." equals ".$b; else: echo $a." is neither greater than or equal to ".$b; endif;
可以看到上方寫成else if分開,運行會parse error,下方連在一起的則不會。
psr-2的規範也說了必須連在一起:
綜此上述,elseif目前是php裡判斷是的最佳選擇。
參考資料:
http://www.php-fig.org/psr/psr-2/#if-elseif-else
http://www.php.net/manual/en/control-structures.elseif.php
http://stackoverflow.com/questions/3662412/are-elseif-and-else-if-completely-synonymous
沒有留言:
張貼留言