What is the PHP shorthand for: print var if var exist
We've all encountered it before, needing to print a variable in an input field but not knowing for sure whether the var is set, like this. Basically this is to avoid an e_warning.
<input value='<?php if(isset($var)){print($var);}; ?>'>
How can I write this shorter? I'm okay introducing a new function like this:
<input value='<?php printvar('myvar'); ?>'>
But I don't succeed in writing the printvar() function.
For PHP >= 5.x:
My recommendation would be to create a issetor
function:
function issetor(&$var, $default = false) {
return isset($var) ? $var : $default;
}
This takes a variable as argument and returns it, if it exists, or a default value, if it doesn't. Now you can do:
echo issetor($myVar);
But also use it in other cases:
$user = issetor($_GET['user'], 'guest');
For PHP >= 7.0:
As of PHP 7 you can use the null-coalesce operator:
$user = $_GET['user'] ?? 'guest';
Or in your usage:
<?= $myVar ?? '' ?>
Another option:
<input value="<?php echo isset($var) ? $var : '' ?>">
The shortest answer I can come up with is <?php isset($var) AND print($var); ?>
Further details are here on php manual.
'; // This is an alternative isset( $value ) AND print( $value ); ?>A simple alternative to an if statement, which is almost like a ternary operator, is the use of AND. Consider the following:
This does not work with echo() for some reason. I find this extremely useful!
<input value='<?php @print($var); ?>'>