fork download
  1. <?php
  2. echo "--- array --- " . PHP_EOL;
  3. $ary = array();
  4.  
  5. $a = function ($val) use ($ary) {
  6. $ary[] = $val;
  7. return $ary;
  8. };
  9.  
  10. var_dump($a(1));
  11. var_dump($a(2));
  12. var_dump($a(3));
  13.  
  14. echo "--- array(ref) ---" . PHP_EOL;
  15. $ary = array();
  16.  
  17. $a = function ($val) use (&$ary) {
  18. $ary[] = $val;
  19. return $ary;
  20. };
  21.  
  22. var_dump($a(1));
  23. var_dump($a(2));
  24. var_dump($a(3));
  25.  
  26. echo "--- ArrayObject ---" . PHP_EOL;
  27. $ary = new ArrayObject();
  28.  
  29. $a = function ($val) use ($ary) {
  30. $ary[] = $val;
  31. return $ary;
  32. };
  33.  
  34. var_dump($a(1));
  35. var_dump($a(2));
  36. var_dump($a(3));
Success #stdin #stdout 0.01s 20520KB
stdin
Standard input is empty
stdout
--- array --- 
array(1) {
  [0]=>
  int(1)
}
array(1) {
  [0]=>
  int(2)
}
array(1) {
  [0]=>
  int(3)
}
--- array(ref) ---
array(1) {
  [0]=>
  int(1)
}
array(2) {
  [0]=>
  int(1)
  [1]=>
  int(2)
}
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}
--- ArrayObject ---
object(ArrayObject)#1 (1) {
  ["storage":"ArrayObject":private]=>
  array(1) {
    [0]=>
    int(1)
  }
}
object(ArrayObject)#1 (1) {
  ["storage":"ArrayObject":private]=>
  array(2) {
    [0]=>
    int(1)
    [1]=>
    int(2)
  }
}
object(ArrayObject)#1 (1) {
  ["storage":"ArrayObject":private]=>
  array(3) {
    [0]=>
    int(1)
    [1]=>
    int(2)
    [2]=>
    int(3)
  }
}