0

I want to call a function in PHP, that changes existing variables without returning a specific one.

Here an example:

<?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
  }
?>

Basically, I want to make a function that is just overwriting variables instead of giving a specific value back to a specific variable where the function is called.

Thanks in advance!

Skalibran
  • 459
  • 1
  • 5
  • 19

2 Answers2

4

pass by reference with &

<?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--;
  }
?>
Erwin Moller
  • 2,375
  • 14
  • 22
3

Precede the arguments with an ampersand.

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

This way, a reference is created and everything you do with the variable will affect the variable 'outside' the function.

Barry
  • 3,683
  • 1
  • 18
  • 25