php中传值与传引用

php中传值和传引用

传值 如果是非对象 会传一个值的拷贝 对这个变量做的任何操作不会影响原值

传引用和传对象 传的是真实的内存地址 对与变量的操作会影响原值

一个特殊的传引用例子

代码:

<?php

$a = ['aaa','bbb'];

foreach ($a as &$val) {
    $val .= 'ccc';
}

var_dump($a);

foreach ($a as $val) {
    $val .= 'ddd';
}

var_dump($a);

结果:

array(2) {
  [0]=>
  string(6) "aaaccc"
  [1]=>
  &string(6) "bbbccc" // 第一个foreach后$val的地址指向的是$a[1]
}
array(2) {
  [0]=>
  string(6) "aaaccc"
  [1]=>
  &string(12) "aaacccdddddd" // 第二个foreach的任何更改都是针对的地址指向的$a[1]
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!