3v4l.org

run code in 300+ PHP versions simultaneously
<?php function foo(&$param) { $param = 42; return $param; } $a = 23; echo "\$a before calling foo(): $a\n"; $b = &foo($a); echo "\$a after the call to foo(): $a\n"; $b = 23; echo "\$a after touching the returned variable: $a\n"; echo "\$b : $b\n";
Output for 4.4.0 - 4.4.9, 7.0.0 - 7.0.20, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.31, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
$a before calling foo(): 23 Notice: Only variables should be assigned by reference in /in/BEj7a on line 9 $a after the call to foo(): 42 $a after touching the returned variable: 42 $b : 23
Output for 4.3.0 - 4.3.11, 5.0.0 - 5.0.4, 7.3.32 - 7.3.33
$a before calling foo(): 23 $a after the call to foo(): 42 $a after touching the returned variable: 42 $b : 23
Output for 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.24 - 5.5.35, 5.6.7 - 5.6.28
$a before calling foo(): 23 Strict Standards: Only variables should be assigned by reference in /in/BEj7a on line 9 $a after the call to foo(): 42 $a after touching the returned variable: 42 $b : 23

preferences:
211.28 ms | 403 KiB | 359 Q