在变量这个函数中,我们学习了变量的引用,我们来回顾一下知识:
<?php $a = 10; $b = &$a; $a = 100; echo $a.'---------'.$b; ?>
上诉知识点的在变量章节中,变量引用有讲述,是指变量$a和$b指向到了同一个存储位置,来存值。
而函数的参数引用,也是这个意思,将形参和实参指向到同一个位置。如果形参在函数体内发生变化,那么实参的值也发生变化。我们来通过实验来看看:
<?php $foo = 100; //注意:在$n前面加上了&符 function demo(&$n){ $n = 10; return $n + $n; } echo demo($foo).'<br />'; //你会发生$foo的值变为了10 echo $foo; ?>
通过上例,我们发现实参为$foo,在调用demo的时候,让$foo和$n指向到了同一个存储区域,当$n的值发生变化的时候。那么$foo的值也发生变化。
<?php $foo = 100; function demo($n){ $n = 10; } echo demo($foo).'<br />'; $foo; ?>