2017-11-11 159 views
-2

在PHP中有很好的技巧的人可以帮我纠正这段代码吗?我把它粘在else if(level >= 10)一个问题,如果level较大的是10如何在PHP中编写好的if/else-if结构

var level = m.level; 

if(level < 10) 
{ 
    level = '<span class="levelco">' + level + '</span>'; 
} 

else if(level >= 10) 
{ 
    level = '<span class="levelco10">' + level + '</span>'; 
}   

else if(level >= 30) 
{ 
    level = '<span class="levelco30">' + level + '</span>'; 
}    

else if(level >= 50) 
{ 
    level = '<span class="levelco50">' + level + '</span>'; 
} 

else if(level >= 80) 
{ 
    level = '<span class="levelco80">' + level + '</span>'; 
} 
+0

你的问题是什么? – saw303

+0

@ saw303问题很明显。假设'level'的值是50,它只会做10级。 –

回答

0

一种方式做,这将是:

var level = m.level; 
var levelclass = 'levelco'; 

if(level >= 10) levelclass = 'levelco10'; 
if(level >= 30) levelclass = 'levelco30'; 
if(level >= 50) levelclass = 'levelco50'; 
if(level >= 80) levelclass = 'levelco80'; 

level = '<span class="' + levelclass + '">' + level + '</span>'; 

倒车,并使用else if使得它更因为一旦条件满足就停止执行:

if(level >= 80) levelclass = 'levelco80'; 
else if(level >= 50) levelclass = 'levelco50'; 
else if(level >= 30) levelclass = 'levelco30'; 
else if(level >= 10) levelclass = 'levelco10'; 
+0

非常感谢你!我喜欢这个社区 –

2

你也应该给上层,还可以使用elseif,如果PHP,怎么这看起来像JavaScript:

var level = m.level; 

if (level < 10) { 
    level = '<span class="levelco">' + level + '</span>'; 
} else if (level >= 10 && level < 30) { 
    level = '<span class="levelco10">' + level + '</span>'; 
} else if (level >= 30 && level < 50) { 
    level = '<span class="levelco30">' + level + '</span>'; 
} else if (level >= 50 && level < 80) { 
    level = '<span class="levelco50">' + level + '</span>'; 
} else if (level >= 80) { 
    level = '<span class="levelco80">' + level + '</span>'; 
} 

如果这是不可能的,反向的条件:

var level = m.level; 

if (level < 10) { 
    level = '<span class="levelco">' + level + '</span>'; 
} else if (level >= 80) { 
    level = '<span class="levelco80">' + level + '</span>'; 
} else if (level >= 50) { 
    level = '<span class="levelco50">' + level + '</span>'; 
} else if (level >= 30) { 
    level = '<span class="levelco30">' + level + '</span>'; 
} else if (level >= 10) { 
    level = '<span class="levelco10">' + level + '</span>'; 
} 
2

两种方式来解决这个问题,但它基本上精确到秒,如果将捕获所有的O f以下条件(等级> = 10将符合以下所有条件)。

解决方案1只是重新排列条件。

level = m.level; 


if(level < 10) 
{ 
    level = '<span class="levelco">' + level + '</span>'; 
} 
else if(level >= 80) 
{ 
    level = '<span class="levelco80">' + level + '</span>'; 
} 
else if(level >= 50) 
{ 
    level = '<span class="levelco50">' + level + '</span>'; 
} 
else if(level >= 30) 
{ 
    level = '<span class="levelco30">' + level + '</span>'; 
}  
else if(level >= 10) 
{ 
    level = '<span class="levelco10">' + level + '</span>'; 
}   

选项2是把一个限制每个如果...

level = m.level; 


if(level < 10) 
{ 
    level = '<span class="levelco">' + level + '</span>'; 
} 

else if(level >= 10 && level <30) 
{ 
    level = '<span class="levelco10">' + level + '</span>'; 
}   

else if(level >= 30 && level < 50) 
{ 
    level = '<span class="levelco30">' + level + '</span>'; 
}    

else if(level >= 50 && level < 80) 
{ 
    level = '<span class="levelco50">' + level + '</span>'; 
} 

else if(level >= 80) 
{ 
    level = '<span class="levelco80">' + level + '</span>'; 
}