是否可以使用if或case语句等条件来添加值?

时间:2014-08-21 10:20:44

标签: php syntax conditional-statements

我正在尝试使用if或case语句来获取某个值,以便在我的数据库中导入。 目前的代码是:

'price' => ((float)$this->data['nett-price'] + 1.30), 

nett-price是使用文件导入的,而1.30是所有项目所需的静态值。

现在我希望在满足条件时增加一定的价格:

if (in_array($this->data['diameter'], array(
            10,
            11,
            12,
            13,
            14,
            15)))
            return '2.20';
        if (in_array($this->data['diameter'], array(16, 17)))
            return '4.40';
        return '2.20';
    }

那么它也应该检查:

if (in_array($this->data['width'], array(
            150,
            155,
            160,
            165)))
            return '2.20';
        if (in_array($this->data['diameter'], array(255, 260)))
            return '4.40';
        return '2.20';
    }

所以简而言之,我想要检查第一个代码是否符合第一个条件,然后检查它是否满足第二个条件。然后它应该为不同的条件添加(仅一次)一个值....

希望我作为初学者解释得很好。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你只需要在条件之间使用AND &&并安排它们,因为如果第一个条件不正确,and将不会评估第二个条件,在其他条件下词:

if( condition1 && condition2) {
    perform requested operation
}

加上一个注释,你的例子在第一个条件中返回2.20并作为默认值,但同时4.40是唯一的条件值,所以我们可以通过测试4.40值来使代码更好:

$addedValue = 0;
if (in_array($this->data['diameter'], array(16, 17)) || in_array($this->data['width'], array(255, 260)))
        $addedValue = 4.40;
else $addedValue = 2.20;

现在你可以'price' => ((float)$this->data['nett-price'] + 1.30 + $addedValue)