Question

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? :)

Était-ce utile?

La solution

<?=(expression) ? $foo : $bar?>

edit: here's a good read for you on the topic

edit: more to read

Autres conseils

echo (expression) ? $foo : $bar;

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:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top