一个PHP语句,使用IF语句的结果进行赋值

时间:2015-02-25 13:32:58

标签: php if-statement conditional variable-assignment

我有一种情况,我有一个功能,可以进行一些数据库检索,并返回一个值或一个错误。我想要一个调用函数的语句,并根据结果分配返回值或默认值。

使用tenary运算符我可以这样做:

$val=(getVal($param)!='error' ? getVal($param) : "default");

但我不想两次调用getVal,因为它会占用数据库查询并且性能昂贵。

我也可以用两个陈述来做,但如果可能的话我只想要一个。感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

试试这个

$val=(($result=getVal($param))!='error' ? $result : "default");

答案 1 :(得分:0)

我只知道两种方式(可能还有更多)。

首先将函数结果赋给变量,然后使用if:

$res = getVal($param);
$val = ($res != 'error' ? $res : "default");

注意:这可能是可读性和性能的最佳选择。


或者你从中修改功能:

function getVal($param) {
   ...
   return $something;
}

到此:

function getVal ($param, &$result) {
   ...
   $result = $something;
   return $something;
}

并使用它:

$val = (getVal($param,$res) != 'error' ? $res : "default");

但这看起来很可疑