Ответ 1
Массив, в PHP, на самом деле является просто своего рода упорядоченной картой: вы можете использовать целые числа (положительные или отрицательные), но также строки, как ключи, и не будет большой разницы.
Я нашел код, который использует отрицательные индексы массива. Затем я пытаюсь использовать его, ничего особенного не происходит. Это ведет себя нормально. Я могу получить все элементы, используя стандартный цикл foreach
.
Итак, какова цель использования этих отрицательных индексов? И когда я должен его использовать?
Массив, в PHP, на самом деле является просто своего рода упорядоченной картой: вы можете использовать целые числа (положительные или отрицательные), но также строки, как ключи, и не будет большой разницы.
Отрицательные ключи массива не имеют особого значения в PHP, так как (как и любое другое значение) они могут быть ключами ассоциативного массива.
$arr = array(-1 => 5);
echo $arr[-1];
Некоторые стандартные функции библиотеки PHP (те, которые ожидают регулярные массивы с только натуральными целыми индексами), однако, принимают отрицательные смещения, чтобы означать "подсчет с конца, а не на начало". array_slice
является одним из таких примеров.
Отрицательные индексы массивов не имеют особого значения (т.е. получают последний/второй последний элемент и т.д.) в PHP. Чтобы получить последний элемент массива, используйте:
$last = end($array);
Чтобы получить второе последнее добавление:
$secondLast = prev($array);
Имейте в виду, что эти функции изменяют внутренний указатель массивов. Для reset используйте:
reset($array);
Начиная с 7.1 и далее, у нас есть важный и практичный частный случай, то есть при использовании синтаксиса массива для доступа к определенным символам строки из назад:
$str = "123";
$empty = "";
echo "LAST CHAR of str == '$str[-1]'<br>"; // '3'
echo "LAST CHAR of empty == '$empty[-1]'<br>"; // '', Notice: Uninitialized string offset: -1