0 ? $a = 1: $b = 2;
1 ? $a = 1: $b = 2;
print "$a $b"
Ответ: 2 2
Пояснение:
Тут есть два важных момента:
- Приоритет тернарного оператора выше чем у "=" и поэтому конструкция работает так (0 ? $a = 1: $b) = 2;
- После вычесления тернарного оператора возвращается переменная, а не ее значение. И ее можно изменить.
Вот еще наглядный пример:
конструкцию вида
if ( $x ) {
$a->{key} = 1;
}
else {
$b->{key} = 1;
}
можно заменить на
($x ? $a : $b)->{key} = 1;
1 коммент.:
Последний пример -- этакий jQuery-style в Перле :)
Отправить комментарий
Не забудьте добавить себя в постоянные читатели и включить уведомления о новых комментариях, либо воспользуйтесь RSS каналом ;)