Функция каждая () возвращает текущий ключ и значение для данного массива, а затем перемещает указатель массива (текущий элемент) вперед на единицу.
Следовательно, его многократный вызов - это способ перебирать элементы в массиве по порядку, и когда вы достигаете конца, each () просто прекращает возвращать значение.
Список () - это не функция, а языковая конструкция; это ярлык для установки нескольких переменных одновременно. В опубликованном примере он устанавливает $ key на первое значение в массиве, возвращаемом each () (текущий ключ), и $ value на второе (текущее значение).
Существует целый ряд проблем с этим фрагментом кода.
- Вы должны сбросить указатель массива, прежде чем использовать каждый (), как это, потому что вы не должны предполагать, что указатель массива находится в начале ко времени выполнения этого кода.
- Значения, которые он объединяет в строку запроса, должны быть экранированы (например, с помощью urlencode ()).
- Это также оставляет ненужный символ «&» в конце строки запроса без необходимости.
- $ HTTP_GET_VARS является устаревшей функцией PHP; его следует заменить на $ _GET.
- Итерирование по массиву с помощью foreach () чище и проще для чтения, чем while, список, каждый из которых похож на этот, и может быть также быстрее.