我用IF语句填充我的编码吗?

时间:2011-12-24 04:55:46

标签: php

我想知道,做过多的IF语句膨胀编码以及何时可以不使用它们?

这两个例子都是一样的,我是唯一一个编辑/使用脚本的人。我是否通过不添加IF声明来教导自己的坏习惯?

if ($en['mm_place']) {
    $tmp = explode(",", $en['mm_place']);
    $en['mm_place'] = $tmp[0].", ".$tmp[1]." ".$tmp[2];
}

与......相同。

$tmp = explode(",", $en['mm_place']);
$en['mm_place'] = $tmp[0].", ".$tmp[1]." ".$tmp[2];

编辑:使用@Francis Avila示例我想出了这个......

if ($en['mm_wmeet']) {
    $tmp = explode(",", $en['mm_wmeet']);
    for ($i = 0; $i < count($tmp); $i++) {
        $en['mm_wmeet'] = $tmp[$i];
    }
}

3 个答案:

答案 0 :(得分:1)

如果他们没有任何目的,那么是的,你是膨胀的。

答案 1 :(得分:1)

在这个特定的例子中,它们并不相同。

如果$en['mm_place']为空,则$tmp将不会有三个元素,因此您的字符串构造将是虚假的。

实际上你需要的可能是:

if (!empty($en['mm_place'])) { // depending on whether you know if this is set and must be a string.
    $tmp = explode(',', $en['mm_place'], 3);
    if (count($tmp)===3) {
        $en['mm_place'] = "{$tmp[0]}, {$tmp[1]} {$tmp[2]}";
    }
}

使用E_NOTICE设置运行PHP,并以不会收到任何通知的方式编写代码。 PHP需要非常多的纪律才能安全正确地使用,因为它有很多草率的错误。通知将告知您大多数不良做法。您最终可能会使用大量if语句。

答案 2 :(得分:0)

在这种情况下,在检查数组元素是否存在之前,应该在代码中保留if语句。这里只会抛出一个通知,如果元素丢失了,但将来你肯定会有类似的代码,如果没有设置元素会崩溃。

编辑:实际上这两个代码示例相同。如果$en['mm_place']为空或未设置,则第一个样本将保留,而第二个样本将替换为", "