I think the ternary operator is just fine for simple tasks. It gets confusing, though, when someone shows their coding machismo by doing something like:
$number= $test ? $value : ($something_else ? $foo : $bar)...
Back in the days of dumb compilers it made some sense to write things like that, on the theory that the compiler's output would be more efficient. You had to show it how to optimize. Now it's not necessary. We're writing code for humans to read, not for compilers. Clarity is (IMNSHO) more important than efficiency, now that compilers generally are capable of outputting efficient machine code.