Czy można echo używać ||
, tak aby użyła pierwszej zmiennej, która jest równa true?Czy można || operator służy do wybierania między wartościami typów nie-boolowskich w PHP?
np
$a = false;
$b = 'b';
echo $a || $b || 'neither'; // evaluates to 1 ?
Czy można echo używać ||
, tak aby użyła pierwszej zmiennej, która jest równa true?Czy można || operator służy do wybierania między wartościami typów nie-boolowskich w PHP?
np
$a = false;
$b = 'b';
echo $a || $b || 'neither'; // evaluates to 1 ?
echo (($a) ? : $b) ? : 'neither';
Technicznie, to już nie jest operator trójskładnikowy; '$ a? $ b: $ c' jest tak nazwane, ponieważ ma 3 operandy (i ponieważ nie robi tego żaden inny operator standardowy). '$ a?: $ b' jest operatorem binarnym, który wygląda i działa trochę jak operator trójskładnikowy. '' – IMSoP
Dokumenty nadal określają je jako potrójny operator ' rules_lawyer>' –
Awesome! Dzięki! –
Ostateczny trójargumentowy
$a = false;
$b = 'b';
echo ($a)?$a:(($b)?$b:'neither');
echo $a ? $a : ($b ? $b : ($c ? $c : 'neither'));
i iść na tak, jeśli masz więcej zmiennych, ale będzie się brzydkie i ciężko czytać, gdy jest za długi.
Jeśli masz listę rzeczy (więcej niż dwa), to możesz rozważyć: 'echo current (array_filter (array ($ a, $ b, 'ani')));' – mario
To brzmi jak twoje pytanie brzmi bardziej jak "Czy operator
||
może być używany z typami innymi niż boolowskie?" jeśli rozumiem to poprawnie. Wydajesz się mówić, że $ a || $ b || "żaden" nie zwrócił 1. –@MartinAtkins tak, byłoby idealnie! –