我正在撰寫一些需要檢查用戶登錄詳細資訊是否正確的代碼,因此我需要大量的 if 陳述句。如果 if 陳述句中的任何條件不為真,它們都應該回傳相同的值。有沒有一種簡單的方法可以做到這一點,而不是多次撰寫相同的內容?我在下面做了一個例子來形象化我的問題。正如你在這里看到的,我多次寫了“ else { return false; }”,這就是我想知道你是否能夠更有效地做到這一點。也許所以我只需要寫一次“否則回傳假”。
//some code
if (/*some condition*/) {
//some code
if (/*some new condition*/) {
//some code
if (/*some new condition*/) {
//some code
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
我很難找到解釋我的問題的好方法,所以如果你有更優雅的解釋方法,請不要猶豫編輯我的帖子。我也不太確定標題是否盡可能好,所以如果您對替代方案有任何想法,請這么說:)
uj5u.com熱心網友回復:
假設您有類似的東西(我添加了否):
if ( condition1 ) {
//some code 1
if ( condition2 ) {
//some code 2
if ( condition3 ) {
//some code 3
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
由于每次條件為假時,您都會退出回傳的函式false,您可以使用否定直接測驗條件是否為假(如果否定條件為真):
if ( !condition1 ) {
return false;
}
//some code 1
if ( !condition2 ) {
return false;
}
//some code 2
if ( !condition3 ) {
return false;
}
//some code 3
這不會減少 if 陳述句的數量,但可以避免許多嵌套級別和else陳述句。
uj5u.com熱心網友回復:
你也可以試試switch陳述句。在許多情況下,它會生成更清晰的代碼。
<?php
if ($i == 0) {
echo "i equals 0";
} elseif ($i == 1) {
echo "i equals 1";
} elseif ($i == 2) {
echo "i equals 2";
}
switch ($i) {
case 0:
echo "i equals 0";
break;
case 1:
echo "i equals 1";
break;
case 2:
echo "i equals 2";
break;
}
?>
switch 陳述句也與使用字串兼容:
<?php
switch ($i) {
case "apple":
echo "i is apple";
break;
case "bar":
echo "i is bar";
break;
case "cake":
echo "i is cake";
break;
}
?>
祝你好運!:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/397614.html
