原文:

function refArray(&$arr)

{
    var_dump($arr);
    $refs = [];
    foreach ($arr as $key => $value)
        $refs[$key] = &$arr[$key];
    var_dump($refs);
    return $refs;
}

$arry = [3, "hello", 0.8, null];
$referenceArray = refArray($arry);
echo "----------------------\r\n";
var_dump($arry);
var_dump($referenceArray);

function refArray($arr)
{
    var_dump($arr);
    $refs = [];
    foreach ($arr as $key => $value)
        $refs[$key] = &$arr[$key];
    var_dump($refs);
    return $refs;
}

$arry = [3, "hello", 0.8, null];
$referenceArray = refArray($arry);
echo "----------------------\r\n";
var_dump($arry);
var_dump($referenceArray);

如果没有将$arry 与函数的$arr进行引用赋值,那么传入的是$arry副本,返回之后副本就会被销毁,那么$refs 也就不再是引用赋值了,它所引用的副本没了。

版权属于:染念
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
更新于: 2020年04月07日 11:32
0
发表评论
  1.     Windows 10 /    FireFox

    nmd,为什么不支持md

    1.     Windows 10 /    Google Chrome

      搞好了

    2.     Windows 10 /    Google Chrome

      @(捂嘴笑)@(捂嘴笑)原生不支持吧

  2.     Windows 10 /    FireFox
    int main(void) {
        unsigned int ip  = 0x7002c2f2;
        int n = 1;
        int *i = &n;
        p(i);
        return 0;
    }
    
    void p(int i){
        printf("%d",*i);
    }
    int main(void) {
        unsigned int ip  = 0x7002c2f2;
        int n = 1;
        int *i = &n;
        p(i);
        return 0;
    }
    
    void p(int *i){
        printf("%d",*i);
    }

    @(滑稽)

    1.     Windows 10 /    Google Chrome

      ???



180 文章数
673 评论量
4 分类数
184 页面数
已在风雨中度过 7年68天8小时22分
目录
来自 《今天遇到有趣的php引用题目》
© 2024 染念Blog
浙ICP备19020194号-1
暗黑模式
暗黑模式
评论
返回顶部
© 2024 染念Blog
浙ICP备19020194号-1
暗黑模式
暗黑模式
评论
返回顶部