我有一种情况,我有一个功能,可以进行一些数据库检索,并返回一个值或一个错误。我想要一个调用函数的语句,并根据结果分配返回值或默认值。
使用tenary运算符我可以这样做:
$val=(getVal($param)!='error' ? getVal($param) : "default");
但我不想两次调用getVal,因为它会占用数据库查询并且性能昂贵。
我也可以用两个陈述来做,但如果可能的话我只想要一个。感谢任何帮助。
答案 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");
但这看起来很可疑