\n"; // Parameters may be sent by reference optionally. function rabbit($a, $b) { $a = $b + 4; $b += 7; } $x = 4; $y = 5; rabbit($x, $y); echo "$x, $y
\n"; rabbit(&$x, $y); echo "$x, $y
\n"; rabbit($x, &$y); echo "$x, $y
\n"; rabbit(&$x, &$y); echo "$x, $y
\n"; alice($x, &$y); echo "$x, $y

\n"; // Variables are local, unless declared otherwise. function narble() { global $night; $night = 7; $day = 44; } $night = 100; $day = 101; echo "$night $day    "; narble(); echo "$night $day

"; // Can return references. References are reduced to ordinary data // unless the & is used in the assignment. $arr = array( 100, 101, 102, 103, 104, 105, 106 ); function &xyz($i) { global $arr; return $arr[$i]; } print_r($arr); echo "
"; $fred = xyz(2); $fred = 4; print_r($arr); echo "
"; $fred = &xyz(3); $fred = 8; print_r($arr); echo "

"; ?>