Php 试图理解并重写嵌套的if/else

Php 试图理解并重写嵌套的if/else,php,Php,我继承了一个包含大量PHP速记的脚本。由于可读性,我通常不喜欢PHP速记,除了偶尔使用简单的三元组之外,我对它没有太多经验 我遇到了一个这样的街区。这个区块要大得多,但这是它的要点 如果$foo $bar=true; 其他的 如果$bar $baz=正确; 其他的 $barbaz=真; 这是重写它的正确方法吗,这样它更具可读性 如果$foo{ $bar=true; }否则{ 如果$bar{ $baz=正确; } }否则{ $barbaz=真; } 编辑 这是另一个例子 如果$foo $bar=t

我继承了一个包含大量PHP速记的脚本。由于可读性,我通常不喜欢PHP速记,除了偶尔使用简单的三元组之外,我对它没有太多经验

我遇到了一个这样的街区。这个区块要大得多,但这是它的要点

如果$foo $bar=true; 其他的 如果$bar $baz=正确; 其他的 $barbaz=真; 这是重写它的正确方法吗,这样它更具可读性

如果$foo{ $bar=true; }否则{ 如果$bar{ $baz=正确; } }否则{ $barbaz=真; } 编辑 这是另一个例子

如果$foo $bar=true; 其他的 如果$bar $baz=正确; 其他的 如果$barbaz $something=true; 其他的 $barbaz=真; 当我将else if转换为elseif时,脚本坏了。

您可以使用

$foo = 2;
$bar = 3;
if ($foo > $bar) {
    $baz = 'Greater';
} elseif ($foo === $bar) {
    $baz = 'Equal';
} else {
    $baz = 'Less';
}
print $baz;
这将嵌套if组合到elseif中,提高可读性。

此代码:

if ($foo)
    $bar = true;
else
    if ($bar)
    $baz = true;
else
    $barbaz = true;
if ($foo)
    $bar = true;
else
    if ($bar)
    $baz = true;
else
    if ($barbaz)
    $something = true;
else
    $barbaz = true;
可重写为,即等同于:

if ($foo) {
    $bar = true;
} else if ($bar) {
    $baz = true;
} else {
    $barbaz = true;
}
if ($foo) {
    $bar = true;
} else if ($bar) {
    $baz = true;
} else if ($barbaz) {
    $something = true;
} else {
    $barbaz = true;
}
此代码:

if ($foo)
    $bar = true;
else
    if ($bar)
    $baz = true;
else
    $barbaz = true;
if ($foo)
    $bar = true;
else
    if ($bar)
    $baz = true;
else
    if ($barbaz)
    $something = true;
else
    $barbaz = true;
可重写为,即等同于:

if ($foo) {
    $bar = true;
} else if ($bar) {
    $baz = true;
} else {
    $barbaz = true;
}
if ($foo) {
    $bar = true;
} else if ($bar) {
    $baz = true;
} else if ($barbaz) {
    $something = true;
} else {
    $barbaz = true;
}

elseif是你的朋友:@johncode是的,这打破了脚本,lolI添加了另一个例子。当我做其他事情时,如果它真的破坏了脚本,这就是为什么我在这里:我认为问题可能是变量的问题。请尝试代码的修订版本。或者,签出。他们可能是一个对你有用的替代方案。当我最初进行转换时,我搞砸了一些事情,它与elseif一起工作,所以我不会删除它,而是要给你荣誉。谢谢,谢谢你。如果你愿意,我可以把原始代码放回去。