global $a; return $a; } function &returnReference() { global $a; return $a; } function foo(&$ref) { var_dump($ref); $ref = "changed"; } echo "Pass a function call that returns a value:\n"; $a = "original"; foo(returnVal()); var_dump($a); echo "Pass a function call that returns a reference:\n"; $a = "original"; foo(returnReference()); var_dump($a); echo "\nPass a static method call that returns a value:\n"; $a = "original"; foo(C::sreturnVal()); var_dump($a); echo "Pass a static method call that returns a reference:\n"; $a = "original"; foo(C::sreturnReference()); var_dump($a); $myC = new C(); echo "\nPass a method call that returns a value:\n";
<?php function &returnRef() { global $a; return $a; } function returnVal() { global $a; return $a; } $a = "original"; $b =& returnVal(); $b = "changed"; var_dump($a); //expecting warning + "original" $a = "original"; $b =& returnRef(); $b = "changed"; var_dump($a); //expecting "changed"
function &testReturnValByRef() { return returnVal(); }