如何在 PHP 中编写良好的 if/else-if 结构
How to write good if/else-if structures in PHP
PHP 高手能帮我改一下代码吗?我有一个问题,如果 level
大于 10.
,它会卡在 else if(level >= 10)
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>';
}
你也应该给上层也用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>';
}
解决这个问题有两种方法,但基本上归结为第二种if会捕获以下所有条件(级别>=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 是对每个 if...设置限制
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;
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';
PHP 高手能帮我改一下代码吗?我有一个问题,如果 level
大于 10.
else if(level >= 10)
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>';
}
你也应该给上层也用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>';
}
解决这个问题有两种方法,但基本上归结为第二种if会捕获以下所有条件(级别>=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 是对每个 if...设置限制
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;
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';