Что такое сокращение PHP для: print var, если var существует

Мы все столкнулись с этим раньше, нужно распечатать переменную в поле ввода, но не зная наверняка, установлен ли параметр var. В основном это делается для предотвращения e_warning.

<input value='<?php if(isset($var)){print($var);}; ?>'> 

Как я могу написать это короче? Я в порядке, представляя новую функцию:

 <input value='<?php printvar('myvar'); ?>'> 

Но мне не удается написать функцию printvar ().

    Моя рекомендация заключалась бы в создании функции issetor :

     function issetor(&$var, $default = false) { return isset($var) ? $var : $default; } 

    Это принимает переменную как аргумент и возвращает ее, если она существует, или значение по умолчанию, если это не так. Теперь вы можете сделать:

     echo issetor($myVar); 

    Но также используйте его в других случаях:

     $user = issetor($_GET['user'], 'guest'); 

    Начиная с PHP 7 вы можете использовать оператор null-coalesce :

     $user = $_GET['user'] ?? 'guest'; 

    Или в вашем использовании:

     <?= $myVar ?? '' ?> 

    Другой вариант:

     <input value="<?php echo isset($var) ? $var : '' ?>"> 
     <input value='<?php @print($var); ?>'> 

    Самый короткий ответ, который я могу придумать, это <?php isset($var) AND print($var); ?> <?php isset($var) AND print($var); ?>

    Более подробная информация приведена в руководстве по php .

    Простой альтернативой оператору if, который почти как тернарный оператор, является использование AND. Рассмотрим следующее:

    «; // Это альтернатива isset ($ value) AND print ($ value); ?>

    По какой-то причине это не работает с echo (). Я считаю это чрезвычайно полезным!

    Лучше использовать правильный механизм шаблонов – https://stackoverflow.com/q/3694801/298479 упоминает два хороших.

    Вот ваша функция в любом случае – она ​​будет работать только в том случае, если var существует в глобальной области:

     function printvar($name) { if(isset($GLOBALS[$name])) echo $GLOBALS[$name]; } 

    Вы можете сделать <?php echo @$var; ?>. <?php echo @$var; ?>. Или <?= @$var ?> .

    В настоящее время в PHP нет ничего, что могло бы сделать это, и вы не можете написать функцию в PHP для этого. Вы можете сделать следующее для достижения своей цели, но также имеет побочный эффект определения переменной, если она не существует:

     function printvar(&$variable) { if (isset($variable)) { echo $variable; } } 

    Это позволит вам делать printvar($foo) или printvar($array['foo']['bar']) . Однако лучший способ сделать это IMO – использовать isset каждый раз. Я знаю, что это раздражает, но вокруг нет никаких хороших путей. Использование @ не рекомендуется.

    Для получения дополнительной информации см. https://wiki.php.net/rfc/ifsetor .

    Это сработало для меня:

     <?= isset($my_variable) ? $my_variable : $my_variable="Some Value"; ?> 
     <input value='<?php printvar(&$myvar); ?>' /> function printvar(&$val) { if (isset($val)) echo $val; } 
     $var; (isset($var)) ? (print $var) : ''; $var = 'hello var'; (isset($var)) ? (print $var) : '';