三元运算符。可能采取片面行动?

2022-08-30 21:55:46

我已经使用三元运算符一段时间了,并且想知道是否有一种方法可以让调用没有子句的函数。例:else

if (isset($foo)) {
    callFunction();
} else {

}

现在显然我们可以省略要做的:else

if (isset($foo)) {
    callFunction();
}

现在对于三元,如果条件返回 false,你怎么能“通过”else 子句呢?

isset($foo) ? callFunction() : 'do nothing!!';

要么是神秘,要么是不可能的?


答案 1

短路

isset($foo) and callFunction();

反转条件并省略第二个参数

!isset($foo) ?: callFunction();

或者只是返回“某物”

isset($foo) ? callFunction() : null;

但是,三元运算符旨在有条件地从两个可能的值中获取值。您正在调用一个函数,因此似乎您真的在寻找并滥用来保存字符?if?:

if (isset($foo)) callFunction();

答案 2

在这种情况下,为什么要使用三元运算符?三元运算符旨在当有两种可能的情况时使用,并且在您只关心情况的情况下没有多大意义。但是,如果您必须这样做,只需将案例留空即可:if(cond)?do_something():;


推荐