if(condition 1){
var=changeVar(var);
changed=true;
}
if(condition 2){
var=changeVar2(var);
changed=true;
}
if(condition 3){
var=changeVar3(var);
changed=true;
}
我不喜歡changed=true;
重複三次。我該如何讓這段代碼更簡單?
if(condition 1){
var=changeVar(var);
changed=true;
}
if(condition 2){
var=changeVar2(var);
changed=true;
}
if(condition 3){
var=changeVar3(var);
changed=true;
}
我不喜歡changed=true;
重複三次。我該如何讓這段代碼更簡單?
你可以保存舊var
,並且比較呢?
oldVar = var;
//your code here.
changed = (oldVar != var);
我曾在那裏==
在第一,但不會是給一個錯誤的(或者至少不同)sollution然後在這個問題嗎?
如果在代碼片段之前'changed'始終爲false,則此方法有效。 – AndersTornkvist 2011-05-22 13:29:04
是的,這確實假設如果var沒有改變,它在原始代碼中是錯誤的。 – Nanne 2011-05-22 13:43:01
這也假設'var'不是一個對象。如果是這樣,對象引用將使這不工作如何你期望它(它永遠不會設置'changed'到'true')... – ircmaxell 2011-05-22 14:02:38
if (condition 1 || condition 2 || condition 3) {
if (condition 1) {
var = changeVar(var);
}
if (condition 2) {
var = changeVar2(var);
}
if (condition 3) {
var = changeVar3(var);
}
changed = true;
}
if(condition1||condition2||condition3) {
switch(condition) {
case 1: var = changeVar(var);
break;
case 2: var = changeVar2(var);
break;
case 3: var = changeVar3(var);
break;
}
changed = true;
}
我很抱歉,但在我看來,問題中沒有「條件」。 – AndersTornkvist 2011-05-22 13:27:00
<?php
if (condition 1) {
var=changeVar(var);
}
if (condition 2) {
var=changeVar2(var);
}
if (condition 3) {
var=changeVar3(var);
}
changed=(condition 1||condition 2||condition 3||changed); // set changed value only if condition 1, condition 2 or condition 3 is true, keep old value otherwise
?>
坦率地說,你的代碼並不複雜。但是我建議你看看你所有的'changeVar()'函數做什麼,因爲它們都使用'var'作爲參數,也許這些函數可以合併?那麼你只需要一個函數來調用...... – 2011-05-22 13:25:14