php-src/tests/lang/func_get_args.004.phpt
Dmitry Stogov 3bd32efb3e Behavoir of func_get_arg() and func_get_args() was changed in PHP7.
Now they show current values of variables corresponded to passed arguments instead of originally passed values.
2014-08-15 11:39:50 +04:00

68 lines
1019 B
PHP

--TEST--
Pass same variable by ref and by value (PHP7).
--FILE--
<?php
function valRef($x, &$y) {
var_dump($x, $y);
var_dump(func_get_args());
$x = 'changed.x';
$y = 'changed.y';
var_dump(func_get_args());
}
function refVal(&$x, $y) {
var_dump($x, $y);
var_dump(func_get_args());
$x = 'changed.x';
$y = 'changed.y';
var_dump(func_get_args());
}
echo "\n\n-- Val, Ref --\n";
$a = 'original.a';
valRef($a, $a);
var_dump($a);
echo "\n\n-- Ref, Val --\n";
$b = 'original.b';
refVal($b, $b);
var_dump($b);
?>
--EXPECTF--
-- Val, Ref --
string(10) "original.a"
string(10) "original.a"
array(2) {
[0]=>
string(10) "original.a"
[1]=>
string(10) "original.a"
}
array(2) {
[0]=>
string(9) "changed.x"
[1]=>
string(9) "changed.y"
}
string(9) "changed.y"
-- Ref, Val --
string(10) "original.b"
string(10) "original.b"
array(2) {
[0]=>
string(10) "original.b"
[1]=>
string(10) "original.b"
}
array(2) {
[0]=>
string(9) "changed.x"
[1]=>
string(9) "changed.y"
}
string(9) "changed.x"