美文网首页
PHP值传递与引用传递的区别

PHP值传递与引用传递的区别

作者: 周瑜君 | 来源:发表于2019-02-20 14:54 被阅读16次

先敲两段代码然后就可以看出两者的区别,咱们透过现象看本质

function sum($a){
  $a++;
  $b = $a;
  return $b;
}
$a = 10;
echo sum($a).'<br />';//11
echo $a;//10
function sum(&$a){
  $a++;
  $b = $a;
  return $b;
}
$a = 10;
echo sum($a).'<br />';//11
echo $a;//11

两段代码的差别在于函数sum的参数上,一个是传值$a,另一个是传引用&$a,其结果是传值过后$a的值最终没有发生改变,反之传引用过后$a的值发生了变化。这里学过C语言的童鞋就明白是怎么回事了,压栈的是引用的副本。由于引用是指向某个变量的,对引用的操作其实就是对他指向的变量的操作。(作用和传指针一样,只是不用解引用) &是指向某个变量地址的符号,函数sum中的形参&$a实际上就是实参$a,那么将其传进sum中进行了一次++运算之后,实参$a的值实际上也就发生了改变,就是这么回事。

相关文章

  • C++基础

    C++ 值传递、指针传递、引用传递详解C++中引用传递与指针传递区别 引用传递和指针传递的区别 引用的规则:(1)...

  • PHP值传递与引用传递的区别

    先敲两段代码然后就可以看出两者的区别,咱们透过现象看本质 两段代码的差别在于函数sum的参数上,一个是传值$a,另...

  • PHP开发经验总结

    请说明 PHP 中传值与传引用的区别。什么时候传值什么时候传引用? 按值传递:函数范围内对值的任何改变在函数外部都...

  • 聊聊Java内部类

    一.磨叽磨叽Java值传递与引用传递 “在Java里面参数传递都是按值传递”即:按值传递是传递的值的拷贝,按引用传...

  • java是值传递

    值传递和引用传递最大的区别是传递的过程中有没有复制出一个副本来,如果传递的是副本,那就是值传递,否则就是引用传递 ...

  • php值传递和引用传递

    1.值传递 值传递是将右边变量的数据值本身,拷贝一份,赋值给左边变量。 例如: 可见:值传递之后,两个变量互不影响...

  • Java 与值传递

    问: 什么是值传递?什么是引用传递?为什么说 Java 中只有值传递? 一、值传递与引用传递 实参与形参: 实际参...

  • 快速区别值传递和引用传递

    复习Java知识的时候又看到值传递和引用传递的区别,然后就查询一下,结果都是Java到底是值传递还是引用传递之争,...

  • 函数参数传递中值传递、地址传递、引用传递的区别?

    函数参数传递中值传递、地址传递、引用传递的区别?1.值传递:形参拷贝实参的值,有内存分配和释放;不会改变原始值2....

  • Day12-Java

    值传递和引用传递 值传递是值的拷贝, 引用传递是引用的拷贝 String 类型是引用类型, new String ...

网友评论

      本文标题:PHP值传递与引用传递的区别

      本文链接:https://www.haomeiwen.com/subject/sslhyqtx.html