php &内存地址

白俊遥博客

引用传值   $b = &$a;        // $a和$b共用同一个空间

<?php
    //php传值方式
    //传值赋值(两个人看两台电视)
    $a = 'zhangsan';
    $b = $a;
    echo $a, '-', $b . '<br>'; //zhangsan-zhangsan
    //引用传值(两个人看一台电视)
    $a = 'lisi';
    $b = &$a;
    $b = 'wangwu';
    echo $a, '-', $b . '<br>'; //wangwu-wangwu
?

从上面的例子,可以看出普通的传值方式,并不会改变变量原有的值,传值赋值方式会改变原有变量的值

对象本身就是引用传递


例子1

class Persion
{
public name = "zhangsan";
}
$p1 = new Persion;
$p2 = $p1;      //       没有新增空间,用的是同一个地址


例子2



$data = ["a","b","c"];
foreach($data as $key=>$value){
$val = &data[$key]
}
每次循环后变量$data的值是什么
[a,b,c]
[b,b,c]
[b,c,c]
执行完毕后,$data的值是什么
[b,c,c]






白俊遥博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论