function a(){
//logic here
//else return false
}
function b(){
//logic here
//else return false
}
function c(){
//logic here
//else return false
}
a() ? b() ? c();
我想先跑一个,如果是假的话去b,如果是假的话去c但是我意外';'错误。
还有一个疑问:如果a()
返回false,它会转到b()
吗?或者我需要设置为if(a() != true)
?
答案 0 :(得分:1)
a() ? b() ? c()
仅作为
的开头有效a() ? b() ? c() : ... : ...
这就是PHP抱怨意外;
的原因。您可以阅读有关条件运算符here的更多信息。
你想要
a() || b() || c();
或
a() or b() or c();
PHP,就像许多语言一样,短路布尔代数所以只评估它,所以当其中一个术语返回true时,它将停止评估链。
答案 1 :(得分:0)
运算符的正确语法?:是$sth? $forTrue : $forFalse;
。因此,如果您真的想使用它,那么您的最后一行应如下所示:
a() ? null : (b() ? null : c());
但是我认为如果使用if语句,它看起来会更好并且更容易阅读。
if (!a()) {
if(!b()) {
c();
}
}