PHP中的数组内部指针是什么?

Chr*_*ier 7 php arrays terminology

end()用来将数组的内部指针设置为它的最后一个元素.然后我key()用来获取最后一个元素的关键字.

例如:

$array = ('one' => 'fish', 'two' => 'fish', 'red' => 'fish', 'blue' => 'fish');
end($array)
$last_key = key($array);
Run Code Online (Sandbox Code Playgroud)

我唯一不理解的是数组的内部指针什么.有人可以向我解释一下吗?我一直在努力,但无法找到解释.

另外,如何设置数组的内部指针会影响该数组?

dec*_*eze 16

在PHP"幕后"中有一个"数组"的内部实现,用C语言编写.这个实现定义了数组数据实际存储在内存中的细节,数组如何表现,如何访问它们等等.这部分C实现是一个"数组指针",它只是指向数组的特定索引.在非常简化的PHP代码中,它是这样的:

class Array {

    private $data = [];
    private $pointer = 0;

    public function key() {
        return $this->data[$this->pointer]['key'];
    }

}
Run Code Online (Sandbox Code Playgroud)

你不必从PHP代码数组指针直接访问,你可以修改或间接使用PHP功能,如影响它end,reset,each等,这是必要的,可以使这些职能的工作; 否则你无法使用迭代数组next(),因为它会记住"下一个"条目是什么?