Php current()函数是否保证以指向数组第一个元素的内部指针开始?
我的问题正是如上所述 我想知道“相信”数组的内部指针总是指向它的第一个元素是否足够,不管发生什么,只要使用以下命令:Php current()函数是否保证以指向数组第一个元素的内部指针开始?,php,arrays,Php,Arrays,我的问题正是如上所述 我想知道“相信”数组的内部指针总是指向它的第一个元素是否足够,不管发生什么,只要使用以下命令: $bar = current($foo); 或者,如果我不冒任何风险,在使用数组之前先将数组的内部指针重置为其第一个元素: reset($foo); $bar = current($foo); 我之所以问这个问题,是因为如果current()函数本身不可靠,它可能会向最终用户提供误导性的信息,我更愿意避免任何主题如下的电子邮件: "What is this? I don't
$bar = current($foo);
或者,如果我不冒任何风险,在使用数组之前先将数组的内部指针重置为其第一个元素:
reset($foo);
$bar = current($foo);
我之所以问这个问题,是因为如果current()函数本身不可靠,它可能会向最终用户提供误导性的信息,我更愿意避免任何主题如下的电子邮件:
"What is this? I don't even..."
我相信你能理解。:)
编辑:
我知道current()函数的作用是访问数组当前内部指针所在的位置。我的问题是,当没有其他函数调用应该移动内部指针时,内部指针是否保证在创建数组后立即指向数组的第一个元素。当前()的要点是访问数组内部指针当前所在位置的元素。如果要使用始终返回第一个元素的函数,可以使用该数组的内部指针reset()
(它还返回第一个元素中的值,这样您就不需要在之后调用current()
),或者使用$foo[0]
(不移动指针,仅用于正确排序的数字索引数组)
对于said,为了回答您的问题,current()
保证在使用array(…)
符号创建数组后立即返回数组的第一个元素。从函数的手动示例中:
<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
...
<?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"
...
+1--应该注意,如果数组使用字符串而不是数字键,
$foo[0]
将不起作用。@Billy:谢谢,我添加了这个。