变量默认总是传值赋值。那也就是说,当将一个表达式的值赋予一个变量时,整个原始表达式的值被赋值到目标变量。这意味着,例如,当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量。 PHP也提供了另外一种方式给变量赋值:引用赋值。这意味着新的变量简单的引用(换言之,“成为其别名” 或者 “指向”)了原始变量。改动新的变量将影响到原始变量,反之亦然。使用引用赋值,简单地将一个 & 符号加到将要赋值的变量前(源变量)。 对象默认是传引用。对于较大的数据,传引用比较好,这样可以节省内存的开销。 注: 按值传递:函数内对值的任何改变在函数外部都会被忽略。 引用传递:函数内对值的任何改变在函数外部也能反映出这些修改。 应用场景:按值传递时,php必须复制值,而按引用传递则不需要复制值,故引用传递一般用于大字符串或对象。 优缺点: 按值传递时,php必须复制值。对于大型字符串和对象来说,这样做代价很大。按引用传递则不需要复制值,对于性能提高有好处。 |