В любом «нормальном» языке программирования, от C до Javascript, такое выражение, как a || b
(или a or b
), оценивается как a
, если a
истинно, и как b
в противном случае, что делает возможными такие вещи, как a = params.a || default_a
и подобные для оператора and
, но PHP требует отличаются.
Есть ли способ получить это в PHP? Или существует какая-то «идиома/шаблон кодирования», которую программисты PHP используют вместо кода, подобного приведенному ниже?
$a = $my_a || $default_a; // nope, $a gets a boolean
Потому что написание if ($my_a) $a = $my_a; else $a = $default_a;
или $a = $my_a ? $my_a : $default_a;
кажется мне очень уродливым и нарушает базовую «сухость» кода, заставляя меня повторять что-то вроде $my_a
, которое также может быть очень длинным и сложным выражением.
Я знаю, что это второстепенное дело, и не такое уж редкое в стране молоток с двойными когтями но он чертовски меня раздражает!