php中相应的嵌套三元运算符?

时间:2013-02-06 12:11:46

标签: php if-statement ternary-operator

我想将if else condition转换为nested ternary运算符。

if ($projectURL) {
    echo $projectURL;
} elseif ($project['project_url']) {
    echo $project['project_url'];
} else {
    echo $project['project_id'];
}

我的写作如下。

echo ($projectURL)?$projectURL:($project['project_url'])?$project['project_url']: $project['project_id'];

但发现它不能正常工作。这不是正确的方法吗?

2 个答案:

答案 0 :(得分:2)

三元运算符在PHP中很棘手,因为它们是左关联的(与所有其他语言不同,它是右关联的)。在这种情况下,您需要使用括号来告诉PHP您想要什么:

echo ($projectURL ? $projectURL : ($project['project_url'] ? $project['project_url'] : $project['project_id']));

答案 1 :(得分:-1)

int a,n,j; for (j=0,n=list[j].n;j<list.size;) { a=1; if (check(X,n,j,a)) return solution X=a^n;// check power `n` while ((n==list[i].n)&&(j<list.size)) i++; // find next power } return no solution found; 开始,我们可以使用Null coalescing operator

php 7