current()函数是否保证以指向数组第一个元素的内部指针开头?

时间:2010-12-27 17:31:04

标签: php arrays

我的问题完全如上所述。

我想知道是否足够“信任”数组的内部指针总是指向它的第一个元素,无论如何,只需使用它:

$bar = current($foo);

或者,如果我没有机会,首先将数组的内部指针重置为第一个元素,然后再使用它:

reset($foo);
$bar = current($foo);

我问的原因是因为如果当前的()函数不可靠,它可能会给最终用户带来误导性信息,我宁愿避免使用以下主题的任何电子邮件:

"What is this? I don't even..."

我相信你明白了。 :)

编辑:

我知道current()函数的要点是访问数组当前内部指针的位置。我的问题是,当没有其他函数调用应该移动内部指针时,内部指针是否保证在数组创建后立即指向数组的第一个元素。

1 个答案:

答案 0 :(得分:5)

current()的目的是访问元素,当前数组的内部指针位于。如果你想使用一个总是返回第一个元素的函数,要么reset()该数组的内部指针(它还返回第一个元素中的值,所以你不需要在之后调用current() ),或使用$foo[0](不移动指针,仅用于正确排序,数字索引的数组)。

如上所述,为了回答您的问题,current() 保证在您使用array(...)表示法创建数组后立即返回数组的第一个元素。来自current()函数的手动示例:

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
...

来自reset()函数的手动示例:

<?php

$array = array('step one', 'step two', 'step three', 'step four');

// by default, the pointer is on the first element
echo current($array) . "<br />\n"; // "step one"

...