传送变量给函数
先来看一个例子:
function doublevalue($var)
{
$var = $var * 2;
}
$variable = 5;
doublevalue($variable);
print “\$variable is: $variable”;
输出的结果是: “5” !
为什么?因为传送给函数的是变量5这个值,计算结果虽然是10,但是没有重新赋值给变量“$variable”,所以变量”variable”的值依然是5,这个需要注意。
如果把上面的第一个语句换一下:
function doublevalue(&$var)
那么输出结果变成: 10
因为加了一个“&”,所以参数就不是指变量值,而是指向变量存储在内存里的位置(变量本身)。结果在函数内改变$var也会影响到位于函数外原始变量$variable。
这个过程叫“引用”:引用变量自身。
同时,如果参数以引用的 形式被定义,则无法以直接量的表达式作为函数的参数,因为函数现在准备修改的对象是变量。
通过引用,也可以实现一个变量值被多个变量访问。
来看这个
$x = 10;
$y = &$x;
$y++;
print $x;
print $y;
结果你应该猜到了,两个11。因为改变$y同时也会改变$x,$y引用$x,事实上,他们等于是同一个变量。如果想解除$y对x变量的引用可以使用
unset($y);
HP0-729 PW0-300 310-083 来实现。
posted on 2008-06-11 16:37
php一道 阅读(811)
评论(1) 编辑 收藏 引用 网摘