gpt4 book ai didi

php - 传递变量引用的问题

转载 作者:可可西里 更新时间:2023-10-31 23:48:34 30 4
gpt4 key购买 nike

<?php 
function requestSecond($param) {
$param['conf']++;
}

function requestFirst($params) {
$params['conf']++;
requestSecond($params);
}

$conf = 1;
requestFirst(array(
'conf' => &$conf,
));
echo $conf;

结果:3

问题:

我知道&$conf的意思是传递$conf的引用,所以我理解requestFirst($params)之后, $conf=2,但我不明白为什么在requestSecond($param)之后,$conf=3, requestSecond($param); 这是否也传递了 $conf 的引用而不是值?

最佳答案

requestFirst 中的

$conf 是引用,传给新函数时还是引用。即使您将它分配给 requestFirst 中的局部变量,它也会被引用。

例如:

function requestFirst($params) {
$params['conf']++;
$stillReference = $params; // $stillReference will also hold reference to $conf
$local = array( 'conf' => $params['conf']); // This will be local and the output will be 2
requestSecond($stillReference); //outputs 3
}

在上面的示例中,$params$stillReference 之间没有区别,并且都使用相同的内部变量容器。将这两者分开的唯一方法是使用 unset() 使其中一个变量无效。

关于php - 传递变量引用的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18269253/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com