php中这两个函数有什么区别?

时间:2015-07-17 09:12:28

标签: php function

这些功能陈述使我感到困惑。

我是php的新手,帮助我理解这些功能:

if(position == conditionToRemove){
    filePaths.remove(position); 
    adapter.notifyDatasetChanged()
}

第一个回声输出 10 第二个回声输出 16

这两个功能有什么区别?

4 个答案:

答案 0 :(得分:3)

有两种类型的通话:

1)按值调用:addFive($num)

2)通过引用致电:addSix(&$num)

在第一种情况下,您只是传递变量的值。

因此,只有在保持原始变量不受影响的情况下才会修改值。

在第二种情况下,您正在传递对变量的引用,因此原始值会被修改。

答案 1 :(得分:2)

第一个函数传递参数按值 - 换句话说,它被复制到函数中,您对它执行的任何更改都将在本地副本上。

第二个函数通过引用传递参数 (注意函数签名中的&)。这意味着变量本身会被传递,并且您对其执行的任何修改都将超出函数的范围。

答案 2 :(得分:1)

&安培;用于在第二个函数声明中传递变量的地址" addSix(& $ num){}"

调用addSix($ orignum)时的第二个函数;值的更新是在" $ orignum"

的地址上完成的

而在第一个函数中,更新是在" $ num"

上完成的

答案 3 :(得分:0)

第一个功能为您的号码添加5,第二个功能为您的号码添加6 $num+=6表示$num= $num+6 第一个函数适用于Call by value,第二个函数适用于Call by reference