猪窝

2007-11-10

变量的基础-PHP学习经验

Filed under: php — admin @ 11:44 pm

传送变量给函数

先来看一个例子:

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);
来实现。

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress