说一说按值传递和按引用传递

说一说按值传递和按引用传递

在默认情况下,函数是按值传递的,也就是传递的是变量的值,而不是变量的本身,也就说函数使用的是变量的一份副本,这种传递的结果就是不会影响变量本身的值。

除了默认行为我们还可以使用引用传递,就是传递变量本身,而不是按值传递,这样有两个好处,第一个是可以改变函数外部变量本身的值,而不需要定义全局变量。第二个好处是如果需要引用传递的数据比较大的场景,按照引用传递则php不在需要构建一份数据的副本,进而提高运行效率。

引用传递需要在变量前面添加一个 “&”符号:

$num = 1;

function func(&$num) {
    $num++;
}

func($num);  //2

//php5.4以后不在支持下面这种写法


function func($num) {
    $num++;
}

func(&$num);

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据