这个PHP foreach循环有什么作用?(与创建对数组中每个元素的引用有关吗?)

哈特利·桑

最近,我试图创建一个PHP数组的副本,只是我希望该副本包含对值的引用,而不是包含值的数组的副本。
我这样做的主要动机是将call_user_func_array函数与mysqli_stmt_bind_parammysqli_stmt_bind_result函数结合使用以创建用于处理准备好的语句的包装函数。

在尝试找出方法时,我遇到了以下代码:

$arr = array(1, 2, 3, 4); // The array to make a copy of with references
$ref_arr = array();       // The new array that will contain the references

foreach ($arr as $key => &$val) {
  $ref_arr[$key] = &$val;
}

上面的代码实际上通过创建与第一个数组相同的第二个数组提供了我想要的东西,除了该数组中的元素是对值的引用而不是值本身,但是,我不明白它是如何工作的。

我了解&符号(&)在PHP中的作用,但我不理解为什么$val在foreach循环中两个实例都必须引用为&$val

如果有人可以解释上面的foreach循环中到底发生了什么,我将非常感激。
非常感谢。

米兰·巴布斯科夫

第一个实例必须作为参考。否则,您只会得到本地副本。考虑以下代码:

$arr = array(1, 2, 3, 4); 
foreach ($arr as $val)
    $val = 5;
print_r($arr);

该代码仍将打印1,2,3,4,因为您没有更改数组中的值,而是更改了副本。

相同的逻辑适用于第二个实例。如果不使用&,则只会分配元素的当前值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

这个PHP函数有什么问题?

来自分类Dev

这个PHP-API代码有什么问题吗?

来自分类Dev

这个javascript和php代码有什么问题吗?

来自分类Dev

如何在 PHP 中创建这个 JSON?

来自分类Dev

为什么这个 foreach 不会在 PHP 数组中循环?

来自分类Dev

这个 for 循环代码(逻辑)如何工作?PHP

来自分类Dev

这个PHP脚本会泄漏内存吗?

来自分类Dev

这个php登录系统安全吗?

来自分类Dev

php:我需要这个相反的东西吗?

来自分类Dev

展平这个数组堆栈 PHP

来自分类Dev

这个“或”在PHP赋值语句的左侧做什么?

来自分类Dev

这个PHP脚本的输出是什么?

来自分类Dev

这个“或”在PHP赋值语句的左侧做什么?

来自分类Dev

这个PHP代码代表什么:'<<< INPUT INPUT'?

来自分类Dev

为什么这个php函数不执行?

来自分类Dev

这个表格的php url查询是什么?

来自分类Dev

这个正则表达式有什么问题-与勉强的量词有关吗?

来自分类Dev

这个正则表达式有什么问题-与勉强的量词有关吗?

来自分类Dev

我不知道这个方程与数组和循环有关

来自分类Dev

这个php语法有效吗?$ class-> {'something'}()

来自分类Dev

这个PHP文件重命名代码有什么问题?

来自分类Dev

这个php搜索页面有什么问题?

来自分类Dev

这个php生成的javascript有什么问题?

来自分类Dev

我的这个php更新记录表格有什么问题

来自分类Dev

有人可以向我解释这个 php 数组中的“\”是做什么的?

来自分类Dev

在PHP中的foreach循环中插入每个元素之后,如何创建一个数组?

来自分类Dev

为什么这个php查询不起作用?

来自分类Dev

为什么这个php代码不起作用?

来自分类Dev

为什么这个简单的php脚本不起作用?

Related 相关文章

热门标签

归档