内联IF withou ?:

时间:2016-10-05 14:34:58

标签: php if-statement

我可以这样做:

if ($param3) {
    $id = $param3;
} elseif ($param2) {
    $id = $param2;
} else {
    $id = $param1;
}

以简单的形式表示:

$id = $param3 || $param2 || $param1;

不使用?:

3 个答案:

答案 0 :(得分:0)

$param3 = NULL;
$param2 = 1;
$param1 = NULL;

$id = $param3 || $param2 || $param1;

print($id);

似乎是一个糟糕的控件,因为如果测试任何$ paramN并且没有定义它将输出错误。尝试注释掉$ param3行。

答案 1 :(得分:0)

不确定'简单形式'是什么意思。在PHP中,基本上有3种方法可以执行If-else控制结构:
- 如果 - 其他,正常:但你不能使用那个 - 替代语法:http://php.net/manual/en/control-structures.alternative-syntax.php
- 三元像'?:',但你不能使用那个

因此,似乎您唯一的选择是替代语法。这在模板中特别有用。如果这对您不起作用,那么您的问题的答案是否定的,没有更多方法可以执行“if-else”。

答案 2 :(得分:0)

您可以通过以下方式避免?

($id=$param3)||($id=$param2)||($id=$param1)