Часто бывает ситуация, когда один и тот же кусок кода нужно выполнить какое-то количество раз с небольшими изменениями. Как пример цикла — это отрисовка таблицы (строка — ячейка — ячейка — и т.п.). В циклах используются операторы инкремента и декремента.
Операторы инкремента и декремента
- ++ увеличивает значение переменной на единицу.
- — уменьшает значение переменной на единицу.
- Pre инкремент (++$a) — увеличивает $a на единицу и возвращает значение $a.
- Pre декремент (–$a) — уменьшает $a на единицу и возвращает значение $a.
- POST инкремент ($a++) — возвращает значение $a, а затем увеличивает $a еа единицу.
- POST декремент ($a–) — возвращает значение $a, а затем уменьшает $a на единицу.
Т.е. при pre-инкременте(-декременте) значение сначала увеличивается (уменьшается) на единицу, а затем используется. А при POST — сначала используется, а потом увеличивается (уменьшается).
$a = 1; echo $a++; // выведет 1 echo ++$a; // выведет 2 echo --$a; // выведет 0 echo $a--; // выведет 1
Используются они обычно, когда в цикле нужен счетчик.
Движение по массиву
Допустим, есть массив $user [‘one’,’two’,’three’].
Чтобы вывести значение текущей и следующей ячейки:
$user = array ('one','two','three'); echo current ($user); // выведет one - текущую ячейку echo next($user); // выведет two - следующая ячейка echo prev($user); // выведет one - предыдущая ячейка echo end($user); // выведет three - последнюю ячейку echo reset($user); // получить первую ячейку echo key($user); // получение ключа текущей ячейки
Т.е. команда current — выводит значение текущей ячейки. Команда next — значение следующей ячейки. Команда prev — предыдущую ячейку. Команда end — вывод значения последней ячейки. Команда reset — уходим в начало массива и получаем первую ячейку.