加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP current()函数是否返回数组的副本或引用?

发布时间:2020-12-13 16:22:35 所属栏目:PHP教程 来源:网络整理
导读:我创建了一个简单的测试用例,它复制了我遇到的问题. 我正在使用next()和current()函数遍历二维数组,并且我希望将数组指针设置为特定位置.因此,给定一个具有变量名称$food的2D数组,具有以下数组结构: array 0 = -- POINTER LOCATION array 0 = string 'apple
我创建了一个简单的测试用例,它复制了我遇到的问题.

我正在使用next()和current()函数遍历二维数组,并且我希望将数组指针设置为特定位置.因此,给定一个具有变量名称$food的2D数组,具有以下数组结构:

array
  0 => <-- POINTER LOCATION
    array
      0 => string 'apple' <-- POINTER LOCATION
      1 => string 'orange'
  1 => 
    array
      0 => string 'onion'
      1 => string 'carrot'

…以及以下代码段:

// move the inner array's pointer once
$should_be_orange = next(current($food));

// now check that inner array's value
$should_still_be_orange = current(current($food));

…为什么$should_be_orange的值为“orange”但是$should_still_be_orange“apple”的值?这是因为current()函数返回内部数组的副本,谁的指针被迭代,然后被销毁(原始数组保持不变)?或者我只是做错了什么我没抓到?

在问题的根源,如果您不知道外部数组的键(并且必须使用current()函数来获取外部数组的指针位置),如何移动内部数组的指针?

解决方法

实际上,current()从数组中返回一个元素.在您的情况下,此元素也是一个数组,这就是为什么next()在您的代码中完全正常工作的原因.你的next()不能在$food数组上运行,但是在$food [0]的副本上,由current()返回

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读