Я не знаю, является ли ваш первый пример неэффективным, но он, безусловно, бессмыслен. Я все еще думаю, что утверждение if яснее:
$foo = 'bar';
if (strlen($foo) > 3)
$foo = substr($foo, 0, 3);
И хотя следующее работает, нет смысла помещать null
в конце, потому что троичный оператор предназначен для использования для вычисления выражений / значений, но здесь null
не делает ничего, кроме как предотвратить ошибку разбора :
!defined('SECURE') ? exit : null;
Чаще всего вы видите это на примере логического короткого замыкания (or exit
не выполняется, если определено SECURE
, поскольку условное выражение or
автоматически принимает значение true, если хотя бы одно условие выполнено признано правдой):
defined('SECURE') or exit;
Я хочу подчеркнуть следующее: не используйте троичные условные выражения только потому, что вы можете.