【问题标题】:PHP parameter variable vs reference [duplicate]PHP参数变量与参考[重复]
【发布时间】:2023-03-28 16:01:01
【问题描述】:

php函数有什么区别

  • 变量的参数通道
  • 引用传递参数?

【问题讨论】:

标签: php


【解决方案1】:

理解它的最好方法是从一个例子中:

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,还有更多示例。

【讨论】:

    【解决方案2】:

    按值传递参数 - 传递变量的值。

    $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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-22
      • 1970-01-01
      • 2016-11-11
      • 2018-10-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-26
      相关资源
      最近更新 更多