PHP参数变量vs引用

时间:2018-03-22 10:18:36

标签: php

在php函数中有什么区别

  • 变量
  • 的参数传递
  • 参数通过参考

2 个答案:

答案 0 :(得分:0)

理解它的最佳方式是一个例子:

function foo($a) {
  $a = 123;
  echo "Value in function: " . $a;
}
function bar(&$a) {
  $a = 123;
  echo "Value in function: " . $a;
}

$var = 555;
foo($var);
echo "After foo: " . $var;
bar($var);
echo "After bar: " . $var;

基本上,您将更改引用指向的值,同时将其更改为函数范围,而在函数完成时,在正常的按值中,对变量所做的更改将会丢失。这是一本官方PHP手册link,附有更多示例。

答案 1 :(得分:0)

按值输入参数 - 传递变量的副本。

$b = 1;
function a($c) {
   $c = 2; // modifying this doesn't change the value of $b, since $c a copy of $b; thus a separate entity.
}

a($b);
echo $b; // still outputs 1

参数按引用传递? - 传递函数外部变量的指针。

$b = 1;
function a($c) {
   $c = 2; // modifying this also changes the value of $b, the variable $c points to.
}

a($b);
echo $b; // outputs 2 now after calling a();