What's the best, preferred way of writing if shorthand one-liner such as:
expression ? $foo : $bar Plot twist: I need to echo $foo or echo $bar. Any crazy tricks? :)
include / require statements)and and or in your conditions rather than && and ||, it can trip you up. But only because the wordy operators have different precedence.The ternary operator evaluates to the value of the second expression if the first one evaluates to TRUE, and evaluates to the third expression if the first evaluates to FALSE. To echo one value or the other, just pass the ternary expression to the echo statement.
echo expression ? $foo : $bar; Read more about the ternary operator in the PHP manual for more details: http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary
Great answers above, and I love when programmers ask questions like this to create clear, concise and clinical coding practices. For anyone that might find this useful:
<?php // grabbing the value from a function, this is just an example $value = function_to_return_value(); // returns value || FALSE // the following structures an output if $value is not FALSE echo ( !$value ? '' : '<div>'. $value .'</div>' ); // the following will echo $value if exists, and nothing if not echo $value ?: ''; // OR (same thing as) echo ( $value ?: '' ); // or null coalesce operator echo $value ?? ''; // OR (same thing as) echo ( $value ?? '' ); ?> References:
echowould work in the branches. And the only reason you can get away with calling it the ternary anything is that there's currently only one ternary operator. "Ternary" meaning having to do with three, though...it's not a very helpful name. :)s/statement/operator. It just bothers me when I hear shorthand if