php传值和传引用

传值例子:

funcion increment($value,$amount=1)
{
    $value=$value+$amount;
}
$value=10;
increment($value);
echo $value;

以上代码的输出结果是10 ,$value的值并没有改变。这主要是由于作用域规则。

这段代码首先会创建一个值为10的全局变量$value,调用increment()函数时,函数内部的变量$value被创建,值加1,所以$value在函数内部的值是11,直到函数结束。

而echo的$value是一个全局变量。根据php函数的作用域,全局变量在整个脚本中都是可见的,但不是函数内部。因此他的值没有发生改变。

值传递:通常,函数获取参数的方式是值传递。

          当传递一个参数的时候,一个新的并且包含该传入值得变量被创建。它是原来那个值得副本。可以以任意方式修改它,但函数外部原来的值是不变的。

传引用例子:

function increnment(&$value,$aumount=1)
{
    $value=$value+$amount;
}

$value=10;
incenment($value);
echo $value;

以上代码或输出11,

引用传递:上面的例使用引用传递。

         在参数传递给函数的时候,函数不会再创建一个新变量,而是函数获得原来变量的引用。

         其区别在晕他不是获得变量本身的值,而是指向原来的值,任何对该变量的修改该都会影响到原始的变量值。

posted on 2014-11-18 10:21  jly553  阅读(151)  评论(0编辑  收藏  举报