如果顺序写的更好的方法

时间:2015-08-18 14:38:53

标签: php

我有一系列if语句,我无法想出一个更好的方法来写这里是:

$a='';$b='';$c='';
if($row->nA!=0){
        $a = $row->nA;
}
if($row->nB!=0){
        $b = $row->nB;
}
if($row->nC!=0){
        $b = $row->nC;
}

这很简单,但我找不到如何写得比这更好

3 个答案:

答案 0 :(得分:2)

你的方式没有任何完全错误。 如果你想写别的东西,试试这样:

$a = ($row->nA != 0) ? $row-nA : '';
$b = ($row->nB != 0) ? $row-nB : '';
$c = ($row->nC != 0) ? $row-nC : '';

但是,就像我说的那样,你的方式没有错;)

答案 1 :(得分:1)

Sascha Presnac是对的 - 你这样做的方式没有任何问题。但是,如果您稍微整理一下代码可能会有用。

$a = '';
$b = '';
$c = '';

if ($row->nA != 0) {
   $a = $row->nA;
}

if ($row->nB != 0) {
   $b = $row->nB;
}

if ($row->nC != 0) {
   $b = $row->nC;
}

使用额外的行来编写代码不是问题。最好是分散和易读,而不是碾碎和难以阅读:)。但是如果你想尽可能少地去做,那么就去Sacha Presnac的方法:)

答案 2 :(得分:0)

如果你有很多变量你可以用

来做
$variables = ['a', 'b', 'c'];
foreach ($variables as $variable)
{
    $$variable = ($row->{"n" . strtoupper($variable)} != 0) ? $row->{"n" . strtoupper($variable)} : '';

}