Den1xxx
Постоялец
- Регистрация
- 15 Янв 2014
- Сообщения
- 291
- Реакции
- 168
- Автор темы
- #1
Что здесь происходит?
Не совсем понятен оператор «?:» и последующее присвоение.
Я правильно понимаю, что здесь проверяется существование $m[$e[$pk]] и если его нет — определяется как пустой массив?
Я всегда встречал это в контексте присвоения в начале, например так
и даже так было бы понятнее и привычнее.
Тогда я могу переписать это так:
Количество символов то же, а работать будет так же?
Если это так, то в данном случае автор не сэкономил ни символа, однако дал -200 к понятности и сломал совместимость к PHP<5.3
Код отсюда Для просмотра ссылки Войдиили Зарегистрируйся
PHP:
isset($m[$e[$pk]]) ?: $m[$e[$pk]] = array();
Я правильно понимаю, что здесь проверяется существование $m[$e[$pk]] и если его нет — определяется как пустой массив?
Я всегда встречал это в контексте присвоения в начале, например так
PHP:
$m[$e[$pk]] = isset($m[$e[$pk]]) ?: array();
Тогда я могу переписать это так:
PHP:
if(!isset($m[$e[$pk]])) $m[$e[$pk]] = array();
Если это так, то в данном случае автор не сэкономил ни символа, однако дал -200 к понятности и сломал совместимость к PHP<5.3
Код отсюда Для просмотра ссылки Войди