phpternary-operator

Ternary Operators. Possible for a one sided action?


I've used ternary operators for a while and was wondering if there was a method to let say call a function without the else clause. Example:

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

}

Now obviously we can leave out the else to make:

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

Now for a ternary How can you 'by pass' the else clause if the condition returns false?

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

Either a mystery or not possible?


Solution

  • Short-circuit

    isset($foo) and callFunction();
    

    Reverse the condition and omit the second argument

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

    or return just "something"

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

    However, the ternary operators is designed to conditionally fetch a value out of two possible values. You are calling a function, thus it seems you are really looking for if and misuse ?: to save characters?

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