Я использовал тернарные операторы некоторое время, и мне было интересно, есть ли способ дать возможность вызвать функцию без предложения else
. Пример:
if(isset($foo)){ callFunction(); }else{ }
Теперь, очевидно, мы можем оставить в стороне else
:
if(isset($foo)){ callFunction(); }
Теперь для тройной Как вы можете «передать» предложение else, если условие возвращает false?
(isset($foo))?callFunction():'do nothing!!';
Или тайна или не возможно?
Короткое замыкание
isset($foo) and callFunction();
Отмените условие и опустите второй аргумент
!isset($foo) ?: callFunction();
или вернуть только «что-то»,
isset($foo) ? callFunction() : null;
Тем не менее, троичные операторы предназначены для условного извлечения значения из двух возможных значений. Вы вызываете функцию, поэтому кажется, что вы действительно ищете, if
и злоупотребляете ?:
Сохранить символы?
if (isset($foo)) callFunction();
Зачем вам использовать тернарный оператор в этом случае? Тернарный оператор предназначен для использования при наличии двух возможных сценариев и не имеет особого смысла в случае, когда вы заботитесь только о случае if
. Если вам нужно это сделать, просто оставьте его пустым: (cond)?do_something():;
Поставьте нуль после двоеточия. Кроме того, предполагая, что вы находитесь на Perl, вы можете использовать лучшие условия «condition and action ()», «action (), если условия« идиомы ».