Все массивы имеют «внутренний указатель массива» , который указывает на текущий элемент массива, PHP имеет несколько функций, которые позволяют вам перемещаться по массиву и просматривать текущие ключи и значения элементов.
end()
- установить внутренний указатель массива на его последний элемент
reset()
- установить внутренний указатель массива на его первый элемент
prev()
- перемотка внутреннего указателя массива
next()
- увеличить внутренний указатель массива
current()
- вернуть текущий элемент в массив
key()
- извлечение ключа из массива
each()
- вернуть текущую пару ключ-значение из массива и переместить курсор массива
Эти функции работают независимо от того, является ли массив пустым, последовательным или ассоциативным, и так как массив не был указан в примере, я предположил, что он должен работать с любым массивом.
$array = array(
'before_last' => false,
'last' => false,
);
end($array); /*
- set pointer to last element -> $array['last']
- return new current element value if it exists, -> false
- else return FALSE
*/
prev($array); /*
- set pointer one place before current pointer -> $array['before_last']
- return new current element value if it exists, -> false
- else return FALSE
*/
if(!is_null(key($array)){ /*
- return current element key if it exists -> "before_last"
- else return NULL
*/
$before_last_element_value = current($array); /*
- return current element value if it exists, -> false
- else return FALSE
*/
}
Как вы можете видеть ожидаемый результат (false
) и результат для несуществующего элемента одинаков (FALSE
), поэтому вы не можете проверить, существует ли элемент, используя возвращенное значение элемента, ключ элемента отличается.
Ключ может быть либо целым числом , либо строкой . Значение может быть любым type
. источник
key()
возвращает значение текущего ключа, если элемент существует, в противном случае он вернет NULL.
Действительный ключ никогда не может быть NULL, поэтому, если возвращается ноль, мы можем определить, что элемент не существует.