在php函数中有什么区别
答案 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();