Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么不';我的指针函数不工作吗_Php_Arrays - Fatal编程技术网

Php 为什么不';我的指针函数不工作吗

Php 为什么不';我的指针函数不工作吗,php,arrays,Php,Arrays,这是一个愚蠢的问题,但我不明白为什么我的指针函数不能工作。他们为什么不工作 $r = array("boo", "goo", "buzz"); while($r = current($r)) { echo $r . '<br />'; next($r); } $r=数组(“boo”、“goo”、“buzz”); 而($r=当前($r)) { 回音$r.“”; 其次($r); } 在执行以下操作时删除该分配: 例如: $r = array("boo", "goo", "buzz

这是一个愚蠢的问题,但我不明白为什么我的指针函数不能工作。他们为什么不工作

$r = array("boo", "goo", "buzz");

while($r = current($r))
{
 echo $r . '<br />';
 next($r);
}
$r=数组(“boo”、“goo”、“buzz”);
而($r=当前($r))
{
回音$r.“
”; 其次($r); }
在执行以下操作时删除该分配:

例如:

$r = array("boo", "goo", "buzz");
while(current($r)) { // get current until true so it will loop, dont assign, you will overwrite r (the array), you could assign a new variable name instead, then use that new name to echo
    echo current($r) . '<br />'; // echo current pointer, not the whole array
    next($r); // shift to next pointer
}
$r=数组(“boo”、“goo”、“buzz”);
虽然(current($r)){//get current直到true,所以它将循环,不赋值,您将覆盖r(数组),但您可以指定一个新的变量名,然后使用该新名称进行回显
回显当前($r)。“
;”//回显当前指针,而不是整个数组 next($r);//移到下一个指针 }

$r=数组(“boo”、“goo”、“buzz”);
虽然($a=current($r)){//现在您可以分配,但不会覆盖`$r`
回显$a.“
”; next($r);//移动到r中的下一个指针 }
试试这种方法

$r = array("boo", "goo", "buzz");

while(list($var, $val) = each($r))
{

 echo $val . '<br />';


}
$r=数组(“boo”、“goo”、“buzz”);
while(列表($var,$val)=每个($r))
{
echo$val.“
”; }
您正在赋值,而不是比较。您正在为数组使用相同的变量名和当前值您正在重用变量
$r
。用数组的值覆盖数组…,不要尝试回显数组:)对这里的第二个示例很好奇。循环如何知道结束?如果将$a设置为当前($r),那么这种情况不会永远发生吗?或者next($r)是否越界了,哈哈。我不确定那里发生了什么…@user2296112不,这很简单,当指针到达数组的末尾时,
current()
只返回false,这反过来又不满足循环的真实性(false),因此结束了循环
$r = array("boo", "goo", "buzz");

while(list($var, $val) = each($r))
{

 echo $val . '<br />';


}