Есть ли сокращенный способ назначения переменной чему-то, если она не существует в PHP?Сокращение PHP для isset()?
if(!isset($var) {
$var = "";
}
Я хотел бы сделать что-то вроде
$var = $var | "";
Есть ли сокращенный способ назначения переменной чему-то, если она не существует в PHP?Сокращение PHP для isset()?
if(!isset($var) {
$var = "";
}
Я хотел бы сделать что-то вроде
$var = $var | "";
Обновления для PHP 7 (спасибо shock_gone_wild)
PHP 7 вводит так называемого нулевого оператора коалесцирующих упрощающее ниже: -
$var = $var ?? "default";
Перед PHP 7
Нет, нет специального оператора или специальный синтаксис для этого. Тем не менее, вы можете использовать тройной оператор:
$var = isset($var) ? $var : "default";
Или так:
isset($var) ?: $var = 'default';
Вот ссылка на новые возможности PHP7 (включая нулевой оператор коалесценции): http://php.net/manual/en/migration70 .new-features.php – kurdtpage
В дополнение к операторам присваивания этот оператор также может использоваться в аргументах функции. –
Не работает с массивами. '$ attribute ['hint'] ?? '' '** Неопределенный индекс: hint ** –
Вы можете использовать новый тройной оператор (PHP 5.3+)
isset($var) ?: $var = "";
Или для старой версии:
$var = isset($var) ? $var : "";
Если '$ var' существует и имеет значение, вы будете перезаписывать его значением' true'. Эти два примера не совпадают. –
Вы правы. Отредактировано, спасибо. –
Не знаете, кто вас ниспровергал, но я привел вас обратно, это полезный ответ, спасибо. – brentonstrine
Есть ли $ val = isset ($ var)? $ var: ''; 'работа для вас? –
Я нашел этот пост очень полезным: http://davidwalsh.name/php-shorthand-if-else-ternary-operators – Pathros
Лучше оригинал для этого дубликата: [Лучший способ присвоить переменной значение по умолчанию (имитировать Perl ||, || =)] (http://stackoverflow.com/q/5972516/2157640) – Palec