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()返回
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |