// 42 function d($f, $s = 'second') { var_dump(func_get_args()); // only 2, no default } d(2); function byRef(&$v) { var_dump(func_get_arg(0)); $v = 42; var_dump(func_get_arg(0)); // new value } $b = 10; byRef($b); function eblanstvo($x, $x = 1, $x = 2) { var_dump(func_get_args()); var_dump(func_get_arg(0)); var_dump(func_get_arg(1)); //var_dump(func_get_arg(2)); // warning, no argument return $x; } echo eblanstvo(3, 4); // 2 O_o class F { static $variable = 'fe'; static function test() {
//func_get_args() example of byref and byval arguments function byVal($arg) { echo 'As passed : ', var_export(func_get_args()), PHP_EOL; $arg = 'baz'; echo 'After change : ', var_export(func_get_args()), PHP_EOL; } function byRef(&$arg) { echo 'As passed : ', var_export(func_get_args()), PHP_EOL; $arg = 'baz'; echo 'After change : ', var_export(func_get_args()), PHP_EOL; } $arg = 'bar'; byVal($arg); byRef($arg); //The above example will output: /* As passed : array ( 0 => 'bar', ) After change : array ( 0 => 'bar', ) As passed : array ( 0 => 'bar', ) After change : array ( 0 => 'baz', ) */
<?php $GLOBALS['foo'] = array(); $GLOBALS['foo']['bar'] = 0xba53ba11; $GLOBALS['bar'] = 0xdeadbeef; function byRef(&$a) { $a >>= 16; } var_dump($GLOBALS['foo']); var_dump($GLOBALS['bar']); byRef($GLOBALS['foo']['bar']); byRef($GLOBALS['bar']); var_dump($GLOBALS['foo']); var_dump($GLOBALS['bar']);
return $index; } else { $index--; } } } print_r(stringAddTwo("12349")); /* * ################################################################################################################# * ########################################## By Reference vs By Value ############################################# * ################################################################################################################# */ echo "<h1>By Reference VS By Value</h1>"; //this will actually edit the passed variable in memory function byRef(&$val) { $val++; return 1; } //this will make a copy of the passed variable and edit it function byVal($val) { $val++; return 1; } $num = 3; echo $num . "<br />"; byVal($num); echo "After By Value: {$num}<br />"; byRef($num); echo "After By Reference: {$num}<br />";
<?php function byVal($arg) { echo 'As passed : ', var_export(func_get_args()), PHP_EOL; $arg = 'baz'; echo 'After change : ', var_export(func_get_args()), PHP_EOL; } function byRef(&$arg) { echo 'As passed : ', var_export(func_get_args()), PHP_EOL; $array = var_export(func_get_args()); $array[0] = "xyzx"; $array[1] = "yyyy"; echo 'After change : ', var_export(func_get_args()), PHP_EOL; } $arg1 = 'bar'; $arg2 = 'xyz'; byVal($arg1, $arg2); byRef($arg1, $arg2); echo "<br>OK:<br>{$arg1}"; print_r($arg1, $arg2);