инициализировать переменную с помощью оператора или

Я хочу инициализировать переменную содержимым другой переменной или предопределенным значением, если указанная другая переменная не установлена.

Я знаю, что мог бы использовать

if(isset($var1)){
$var2 = $var1;
} else{
$var2 = "predefined value";
}

Я думал, что делать это будет так элегантно:

$var2 = $var1 || "predefined value";

В прошлый раз, когда я проверял, это работало (или моя память обманывает меня). Но здесь, когда я печатаю $ var2, это всегда 1, Кажется, PHP проверяет, если заявление $var1 || "predefined value" верно и назначает 1 в $var2,

Я хочу, чтобы «предопределенное значение» было присвоено переменной $ var2, если переменная $ var1 не существует.
Какая-то особенность PHP, которую я здесь пропускаю, чтобы заставить это работать?

заранее спасибо

-1

Решение

Я обычно создаю вспомогательную функцию следующим образом:

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

и вызвать его со ссылкой на переменную:

$var2 = issetor($var1, "predefined");
1

Другие решения

Я только что прочитал это в PHP 7, будет новое сокращение для

$c = ($a === NULL) ? $b : $a;

Это будет выглядеть так:

$c = $a ?? $b;

И может быть расширено так:

$c = $a ?? $b ?? $c ?? $d;

объяснение: $ c будет присвоено первое значение слева, которое не равно NULL.

0

По вопросам рекламы [email protected]