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