Обучу php

11.79K
.
╭∩╮ (`-`) ╭∩╮
# Koenig (30.10.2016 / 22:12)
AlkatraZ, я недавно случайно узнал что у break есть аргумент Гг
Я не люблю этот аргумент и не использую его: слишком неочевидно, легко допустить ошибку.
.
(\/)____o_O____(\/)
кстати еще интересный вебинар смотрел по этому разделу
http://php.net/manual/ru/spl.d ... s.php
Явистам понравится
.
AlkatraZ
╭∩╮ (`-`) ╭∩╮
Приведу простой пример неочевидных и выносящих мозг решений на примере домашнего задания.
Кто посетил урок и получил файл ДЗ, там в 7-м задании говорилось про оператор XOR,
а в 8-м предлагалась задачка:
$x = 10;
$y = 15;
Необходимо дописать несколько операций так, чтобы в итоге значения переменных
поменялись местами. При этом, использовать другие переменные запрещается.
===
Решить задачу можно 2-мя кратчайшими путями.

Первый очевидный путь - трюк с массивом, решается одной строкой:
list($y, $x) = array($x, $y);


Второй путь как раз использует выражение XOR из 7-го задания, точнее его краткий вариант написания:
$y ^= ($x ^= $y);
$x ^= $y;

Вот этот второй путь как раз мне категорически не нравится, ибо абсолютно неочевиден и выносит мозг тех, кто будет смотреть код. Без комментария хрен поймешь, что же делают эти 2 строчки.
Посему, подобные выражения применять нежелательно, тем более, что они не дают никакого выйгрыша в скорости.
.
AlkatraZ, все, кто решал использовали второй способ.
.
Koenig
(\/)____o_O____(\/)
litta, на аннимоне явисты, для них это нормально
у них там многое завязано на побитовые операции
.
╭∩╮ (`-`) ╭∩╮
# litta (30.10.2016 / 22:38)
AlkatraZ, все, кто решал использовали второй способ.
Вот это как раз на мой взгляд и ужасно.
Я считаю. что всегда по возможности надо применять простые и очевидные на взгляд решения.
---
Первый метод, что я привел, легко объяснить на словах.
А вот попробуйте объяснить, что происходит во втором случае
.
╭∩╮ (`-`) ╭∩╮
# Koenig (30.10.2016 / 22:39)
litta, на аннимоне явисты, для них это нормально
у них там многое завязано на побитовые операции
Да, но мы в уроке рассматриваем именно РНР
.
(\/)____o_O____(\/)
AlkatraZ, просто в пхп уже кучу функций напилили, чем не может похвастаться какой нибудь другой ЯП, а то и по две (sizeof() count())
.
╭∩╮ (`-`) ╭∩╮
# Koenig (30.10.2016 / 22:45)
AlkatraZ, просто в пхп уже кучу функций напилили, чем не может похвастаться какой нибудь другой ЯП, а то и по две (sizeof() count())
Всегда надо стремиться к простым и понятным решениям.
гениальность - в простоте.
===
Могу объявить даже конкурс с призовым фондом в 500 рублей

УСЛОВИЯ:
Перед Вами код нашего движка JohnCMS: https://github.com/john-cms/johncms
Обоснованно докажите мне где и почему можно применить оператор XOR и какое преимущество это даст перед имеющимися решениями.

Первый, кто предоставит пример где можно впилить и докажет мне, что это лучше того, что было, получает от меня на Вебмани 500р.

Конкурс действителен до 4-го ноября (ближайшая пятница) этого года.
.
litta, не правда, я использовал третий способ
Всего: 546