Programming/PHP

Call-by-value , Call-by-reference

Gaffel 2011. 5. 5. 17:52


1.
<?php
   function my_reverse($param_array, $num) {
      for($i = 0;$i < $num;$i++)
         $temp_array[$num-$i-1] = $param_array[$i];
      $param_array = $temp_array;
   }

   $num_array = array(10, 20, 30, 40, 50);
   print "before = ";
   for($i = 0;$i < sizeof($num_array);$i++)
      print "$num_array[$i] ";
   my_reverse($num_array, sizeof($num_array));
   print "<br>after = ";
   for($i = 0;$i < sizeof($num_array);$i++)
      print "$num_array[$i] ";
?>

before = 10 20 30 40 50
after = 10 20 30 40 50



2.
<?php
   function my_reverse(&$param_array, &$num) {
      for($i = 0;$i < $num;$i++)
         $temp_array[$num-$i-1] = $param_array[$i];
      $param_array = $temp_array;
   }

   $num_array = array(10, 20, 30, 40, 50);
   print "before = ";
   for($i = 0;$i < sizeof($num_array);$i++)
      print "$num_array[$i] ";
   my_reverse($num_array, sizeof($num_array));
   print "<br>after = ";
   for($i = 0;$i < sizeof($num_array);$i++)
      print "$num_array[$i] ";
?>

before = 10 20 30 40 50
after = 50 40 30 20 10