【发布时间】:2023-03-28 16:01:01
【问题描述】:
php函数有什么区别
- 变量的参数通道
- 引用传递参数?
【问题讨论】:
-
我认为您的意思是
value而不是variable。这也涵盖了所有地方。至少试着先看看。
标签: php
php函数有什么区别
【问题讨论】:
value 而不是 variable。这也涵盖了所有地方。至少试着先看看。
标签: php
理解它的最好方法是从一个例子中:
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,还有更多示例。
【讨论】:
按值传递参数 - 传递变量的值。
$b = 1;
function a($c) {
$c = 2; // modifying this doesn't change the value of $b, since only the value was passed to $c.
}
a($b);
echo $b; // still outputs 1
通过引用传递参数? - 传递指向变量的指针。
$b = 1;
function a($c) {
$c = 2; // modifying this also changes the value of $b, since variable $c points to it
}
a($b);
echo $b; // outputs 2 now after calling a();
【讨论】: