Назначить переменную в условии, если true

Я знаю, что вы можете назначить переменную в таком состоянии:

if ($var = $foo)

Однако мне не нужно ничего делать в самом состоянии, поэтому меня часто оставляют пустыми скобками. Могу ли я просто назначить $var если $foo является true каким-либо другим способом, без необходимости делать что-то еще позже?

Также я могу назначить $var для $foo если $foo является true но если $foo является false делайте что-то еще? Подобно:

 if ($var = !$foo) { if ($var = !$bar) { //Etc... } } 

В принципе, я хочу иметь больше резервных / дефолтов.

Предложение @ chandresh_cool правильное, но для того, чтобы разрешить множественные возможности / резервные копии, вам нужно было бы вложить тройные выражения:

 $var = ($foo == true) ? $foo: ($bar == true) ? $bar: ($fuzz == true) ? $fuzz: $default; 

Примечание: первые 3 строки заканчиваются двоеточиями, а не полуколонами.

Однако более простым решением является сделать следующее:

 $var = ($foo||$bar||$fuzz...); 

Хотя это очень старый пост. Логическую ошибку для фальсифицирующих значений можно закодировать следующим образом.

 $var = $foo ?: $bar ?: "default"; 

В этом случае, когда $foo является фальсифицированным значением (например, ложным, пустым строком и т. Д.), Он возвращается к $bar иначе он использует $foo . Если bar является фальсифицированным значением, он будет возвращаться к строке по default .

Имейте в виду, что это работает с фальсифицированными значениями, а не только true .

пример:

 $foo = ""; $bar = null; $var = $foo ?: $bar ?: "default"; 

$var будет содержать текст по default потому что пустые строки и null считаются значениями «false».

Вместо этого вы можете использовать трёхмерный оператор следующим образом:

 $var = ($foo == true)?$foo:"put here what you want"; 

Вы можете присвоить такие значения:

 $var = $foo; 

Установка их в оператор if также возможна, PHP будет оценивать полученный $ var, который вы только что назначили.

Я действительно не задаю вопрос, но вы можете сделать что-то вроде этого:

 if(!($var = $foo)){ //something else. }