三元运营商.可以采取单方面行动?

sou*_*rri 16 php ternary-operator

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

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

}
Run Code Online (Sandbox Code Playgroud)

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

if (isset($foo)) {
    callFunction();
}
Run Code Online (Sandbox Code Playgroud)

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

isset($foo) ? callFunction() : 'do nothing!!';
Run Code Online (Sandbox Code Playgroud)

要么是神秘还是不可能?

Kin*_*nch 31

短路

isset($foo) and callFunction();
Run Code Online (Sandbox Code Playgroud)

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

!isset($foo) ?: callFunction();
Run Code Online (Sandbox Code Playgroud)

或只返回"东西"

isset($foo) ? callFunction() : null;
Run Code Online (Sandbox Code Playgroud)

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

if (isset($foo)) callFunction();
Run Code Online (Sandbox Code Playgroud)