& 引用传值

    public function ko(){

        $arr_1 = [
            [‘name‘ => ‘zhang0‘,‘sex‘ =>   0],
            [‘name‘ => ‘zhang1‘,‘sex‘ =>   1],
            [‘name‘ => ‘zhang2‘,‘sex‘ =>   0],
            [‘name‘ => ‘zhang3‘,‘sex‘ =>   1],
            [‘name‘ => ‘zhang4‘,‘sex‘ =>   0]
        ];

        $arr_2 = [
            [‘name‘ => ‘li0‘,‘sex‘ =>   0],
            [‘name‘ => ‘li1‘,‘sex‘ =>   1],
            [‘name‘ => ‘li2‘,‘sex‘ =>   0],
            [‘name‘ => ‘li4‘,‘sex‘ =>   0]
        ];

        foreach ($arr_1 as &$v){
            $v[‘sex_str‘] = ‘男‘;
        }

        $result = $arr_1;
        foreach ($arr_2 as $v){
            $v[‘sex_str‘] = ‘女‘;
        }

        dump($arr_1);
        dump($arr_2);
        dump($result);
        exit;
    }

<pre>array(5) {
[0] =&gt; array(3) {
[&quot;name&quot;] =&gt; string(6) &quot;zhang0&quot;
[&quot;sex&quot;] =&gt; int(0)
[&quot;sex_str&quot;] =&gt; string(3) &quot;男&quot;
}
[1] =&gt; array(3) {
[&quot;name&quot;] =&gt; string(6) &quot;zhang1&quot;
[&quot;sex&quot;] =&gt; int(1)
[&quot;sex_str&quot;] =&gt; string(3) &quot;男&quot;
}
[2] =&gt; array(3) {
[&quot;name&quot;] =&gt; string(6) &quot;zhang2&quot;
[&quot;sex&quot;] =&gt; int(0)
[&quot;sex_str&quot;] =&gt; string(3) &quot;男&quot;
}
[3] =&gt; array(3) {
[&quot;name&quot;] =&gt; string(6) &quot;zhang3&quot;
[&quot;sex&quot;] =&gt; int(1)
[&quot;sex_str&quot;] =&gt; string(3) &quot;男&quot;
}
[4] =&gt; &amp;array(3) {
[&quot;name&quot;] =&gt; string(3) &quot;li4&quot;
[&quot;sex&quot;] =&gt; int(0)
[&quot;sex_str&quot;] =&gt; string(3) &quot;女&quot;
}
}
</pre><pre>array(4) {
[0] =&gt; array(2) {
[&quot;name&quot;] =&gt; string(3) &quot;li0&quot;
[&quot;sex&quot;] =&gt; int(0)
}
[1] =&gt; array(2) {
[&quot;name&quot;] =&gt; string(3) &quot;li1&quot;
[&quot;sex&quot;] =&gt; int(1)
}
[2] =&gt; array(2) {
[&quot;name&quot;] =&gt; string(3) &quot;li2&quot;
[&quot;sex&quot;] =&gt; int(0)
}
[3] =&gt; array(2) {
[&quot;name&quot;] =&gt; string(3) &quot;li4&quot;
[&quot;sex&quot;] =&gt; int(0)
}
}
</pre><pre>array(5) {
[0] =&gt; array(3) {
[&quot;name&quot;] =&gt; string(6) &quot;zhang0&quot;
[&quot;sex&quot;] =&gt; int(0)
[&quot;sex_str&quot;] =&gt; string(3) &quot;男&quot;
}
[1] =&gt; array(3) {
[&quot;name&quot;] =&gt; string(6) &quot;zhang1&quot;
[&quot;sex&quot;] =&gt; int(1)
[&quot;sex_str&quot;] =&gt; string(3) &quot;男&quot;
}
[2] =&gt; array(3) {
[&quot;name&quot;] =&gt; string(6) &quot;zhang2&quot;
[&quot;sex&quot;] =&gt; int(0)
[&quot;sex_str&quot;] =&gt; string(3) &quot;男&quot;
}
[3] =&gt; array(3) {
[&quot;name&quot;] =&gt; string(6) &quot;zhang3&quot;
[&quot;sex&quot;] =&gt; int(1)
[&quot;sex_str&quot;] =&gt; string(3) &quot;男&quot;
}
[4] =&gt; &amp;array(3) {
[&quot;name&quot;] =&gt; string(3) &quot;li4&quot;
[&quot;sex&quot;] =&gt; int(0)
[&quot;sex_str&quot;] =&gt; string(3) &quot;女&quot;
}
}
</pre>

 

原文地址:https://www.cnblogs.com/pansidong/p/10752757.html

时间: 2024-10-11 22:51:41

& 引用传值的相关文章

PHP基础------引用传值

<?php ////引用传值 //$a = 3; //$b = $a; //$a = 4; // //echo $b;//考虑$b值是多少,$a和$b分别在不同的空间,改变$a的值不会影响$b $a = 4; $b = &$a; $a = 8; echo $b; //&$a相当于把$a的地址传递给$b,此时两个变量指向同一个空间,所以改变$a的变量地址$b会随之改变

Android之线程安全的单例模式,Adapter注意事项之引用传值

线程安全的单例模式单位模式一般写法如下: public static FestivalLab mInstance; private FestivalLab() { } public static FestivalLab getInstance() { if (mInstance == null) { mInstance = new FestivalLab(); } return mInstance; } 这样写不是线程安全的,因为如果两个线程都进入到这里,会实例化两次.那么如何优化呢? 线程安全

PHP引用传值规范问题

在我上一篇:  shopnc 商城源码阅读笔记--开篇概述   中,遇到了一个PHP引用传值导致的错误,情况大致如下: 在我查阅PHP官方文档  的中文版的时候   http://php.net/manual/zh/language.references.pass.php 看到如下描述: 注意在函数调用时没有引用符号——只有函数定义中有.光是函数定义就足够使参数通过引用来正确传递了.在最近版本的 PHP 中如果把 & 用在foo(&$a); 中会得到一条警告说“Call-time pass

Python引用传值总结

Python函数的参数传值使用的是引用传值,也就是说传的是参数的内存地址值,因此在函数中改变参数的值,函数外也会改变. 这里需要注意的是如果传的参数类型是不可改变的,如String类型.元组类型,函数内如需改变参数的值,则相当于重新新建了一个对象. # 添加了一个string类型的元素添加到末尾 def ChangeList(lis): lis.append('hello i am the addone') print lis return lis = [1, 2, 3] ChangeList(

拷贝传值和引用传值

1.拷贝传值:基本数据类型都是“拷贝传值”. 拷贝传值,就是将一个变量的值“拷贝”一份,传给了另一个变量. 拷贝传值中,两个变量之间没有任何联系,修改其中一个变量的值,另一个不会改变. 这两个变量之间,是相互独立的,没有任何联系.        基本数据类型存在“快速内存”“栈内存”中的.因为,基本数据类型只有一个变量名和一个变量值 2.引用传址:复合数据类型都是“引用传地址” 复合数据类型的存储分两步: (1)将变量名和数据地址存在“快速内存”“栈内存”中. (2)具体的数据存在“慢速内存”“

PHP引用传值

首先需要弄清楚几个概念: 变量名和变量的值是两个概念,变量名是指一段内存空间,空间里面存放的才是变量的值. 传值和传引用的区别 按值传递 1.在函数范围内对值得任何改变在函数外部都会被忽略 2.按值传递时,php必须复制值,如果是大型字符串或是对象等,这是一个代价很大的操作,耗内存. 按引用传递1.在函数内对值得任何改变,在函数外部也能反映出来 2.按引用传递时不需要复制值,对于性能提高有好处 例一: 1 <?php 2 $a= 'hello world'; 3 $b = &$a; 4 un

php中的引用传值

一.简单数据类型的的赋值为值传递,函数返回值赋值也是值传递.且php中引用采用的是"写时拷贝"的原理,就是除非发生写操作,指向同一个地址的变量或者对象是不会被拷贝的. 通俗的讲 1:如果有下面的代码 $a="ABC";  $b=$a; 其实此时 $a与$b都是指向同一内存地址 而并不是$a与$b占用不同的内存 2:如果在上面的代码基础上再加上如下代码 $a="EFG"; 由于$a与$b所指向的内存的数据要重新写一次了,此时Zend核心会自动判断

图像引用传值

当复制一副图像时,利用函数cv::Mat::clone(),则将在内存中重新开辟一段新的内存存放复制的图像(图像数据也将全部复制),而如果利用cv::Mat::copyTo()复制图像,则不会在内存中开辟一段新的内存块,同时也不会复制图像数据,复制前后的图像的指针指向同一个内存块.使用的时候需注意两个函数的区别. 为了避免函数参数传递时出现复制情况,函数的形参多采用传递reference(引用),如cv::Mat &image,传递输入图像的引用,不过这样函数可能会对输入图像进行修改,并反映到输

Java基础必备 -- 堆栈、引用传值、垃圾回收等

 在Java中,对象作为函数参数的传递方式是值传递还是引用传递?String str = "abc" 与 String str = new String("abc")在存储上有何区别?想成为一名合格的搬砖工,掌握吧,颤抖吧! 堆(heap)和栈(stack)  在数据结构中存在堆和栈,在内存分配中也有堆和栈的概念,指的是堆空间和栈空间,注意不要将两者混为一谈,这里要讨论的是后者.  在数据结构中,堆和栈是两种不同的数据结构.栈是一种后进先出的线性表,堆是一种特殊的完