PHP - 通过引用传递的重点是什么?

时间:2014-04-18 18:46:25

标签: php pass-by-reference pass-by-value

好的,我知道通过引用传递的内容是......我不需要解释。

假设您有一个通过引用引入参数的函数:

function foo(&$a){
   $a = 1;
}

你称之为:

$a = 0;
foo($a); // Now $a is 1.

您可以按值传递相同的确切事项:

function foo($a){
   $a = 1;
   return $a;
}

你称之为:

$a = 0;
$a = foo($a);  // Now $a is 1.

那么,通过引用传递的重点是什么?

1 个答案:

答案 0 :(得分:0)

从上面发表的评论和其他一些研究中回答我自己的问题:

  1. 由于只有对象的引用传递给pass-by-reference中的函数,因此在尝试节省内存时特别有用。
  2. 如果有这种情况你想要改变一个实体但返回另一个实体,那么pass-by-reference可以派上用场(虽然我宁愿使用带有返回值的多个函数)。
  3. 除了这两种情况之外,我认为这种方法可能会导致大型代码库中的混淆并导致一些讨厌的代码。

    如果您知道我应该添加的任何其他原因请发表评论,我会在这里添加。