【问题标题】:PHP - Call a function with no return that does actually change values [duplicate]PHP - 调用一个没有返回的函数,它确实改变了值[重复]
【发布时间】:2015-07-08 10:12:33
【问题描述】:

我想在 PHP 中调用一个函数,该函数会更改现有变量而不返回特定变量。

这里是一个例子:

<?php
  $number1 = 5;
  $number2 = 3;
  echo $number1;
  echo $number2; //shows the unmodified numbers

  modifyNumbers($number1, $number2); // Modifies the Numbers

  echo $number1;
  echo $number2; //shows the modified numbers
?>

<!-- Stuff -->

<?php
  function modifyNumbers($number1, $number2) {
    /* Doing math stuff with the numbers */
    /* No return because many numbers were changed / overwritten
  }
?>

基本上,我想创建一个仅覆盖变量的函数,而不是将特定值返回给调用该函数的特定变量。

提前致谢!

【问题讨论】:

  • 使用变量的引用。
  • 你需要将变量定义为全局
  • 定义为全局效果很好,谢谢!

标签: php function methods void


【解决方案1】:

使用 & 传递引用

<?php
  $number1 = 5;
  $number2 = 3;
  echo $number1;
  echo $number2; //shows the unmodified numbers

  modifyNumbers($number1, $number2); // Modifies the Numbers

  echo $number1;
  echo $number2; //shows the modified numbers
?>

<!-- Stuff -->

<?php
  function modifyNumbers(&$number1, &$number2) {
    $number1++;
    $number2--;
  }
?>

【讨论】:

    【解决方案2】:

    在参数前加上 & 号。

    function modifyNumbers(&$number1, &$number2) {
        /* Doing math stuff with the numbers */
        /* No return because many numbers were changed / overwritten
      }
    

    这样,一个引用被创建,你对变量所做的一切都会影响函数“外部”的变量。

    【讨论】:

    • 棒极了,甚至比将变量定义为全局变量还要短:)
    猜你喜欢
    • 2023-03-14
    • 2022-01-11
    • 2021-07-02
    • 2015-11-09
    • 1970-01-01
    • 2014-06-13
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    相关资源
    最近更新 更多