2017-11-11 130 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>'; 
}