我正在使用 end()
将数组的内部指针设置为其最后一个元素。然后我使用 key()
获取最后一个元素的键。
例如:
$array = ('one' => 'fish', 'two' => 'fish', 'red' => 'fish', 'blue' => 'fish');
end($array)
$last_key = key($array);
我唯一不明白的是数组的内部指针是什么。有人可以向我解释吗?我一直在尝试,但找不到解释。
此外,设置数组的内部指针如何影响该数组?
最佳答案
在 PHP“幕后”中有一个用 C 编写的“数组”的内部实现。这个实现定义了数组数据实际存储在内存中的方式、数组的行为方式、数组的访问方式等细节。这个 C 实现的核心是一个“数组指针”,它简单地指向数组的特定索引。在非常简化的 PHP 代码中,它是这样的:
class Array {
private $data = [];
private $pointer = 0;
public function key() {
return $this->data[$this->pointer]['key'];
}
}
您无法从 PHP 代码直接访问此数组指针,您只能使用 end
、reset
、 等 PHP 函数间接修改和影响它每个
等。使这些功能正常工作是必要的;否则您无法使用 next()
迭代数组,因为它会在哪里记住“下一个”条目是什么?
关于php - 什么是 PHP 中的数组内部指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28059372/