Bug #71274 [Com]: func_get_args() behaviour change in PHP 7

From: Date: Tue, 05 Jan 2016 08:18:00 +0000
Subject: Bug #71274 [Com]: func_get_args() behaviour change in PHP 7
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-198420@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=71274&edit=1 ID: 71274 Comment by: patrickallaert@php.net Reported by: patrickallaert@php.net Summary: func_get_args() behaviour change in PHP 7 Status: Duplicate Type: Bug Package: Scripting Engine problem PHP Version: 7.0.1 Block user comment: N Private report: N New Comment: Is the content of https://github.com/php/php-src/blob/PHP-7.0.0/UPGRADING visible somewhere on http://php.net/ ? I digged http://php.net/manual/en/migration70.php and filed this bug because I couldn't find anything, did I miss something? Previous Comments: ------------------------------------------------------------------------ [2016-01-04 19:38:19] requinix@php.net The changes are intentional and the docs have already been updated (modified example and there's a note at the bottom). See also bug #71113. https://github.com/php/php-src/blob/PHP-7.0.0/UPGRADING#L190 http://svn.php.net/viewvc/phpdoc/en/trunk/reference/funchand/functions/func-get-args.xml?r1=336598&r2=338280&pathrev=338280 ------------------------------------------------------------------------ [2016-01-04 13:58:02] patrickallaert@php.net Description: ------------ func_get_args() (and probably the related functions) are context sensitive in PHP 7.0 while it was not the case in PHP 5.x. If you change the content of one of your arguments and then call func_get_args(), the change you made is reflected in the results you get, even if those were scalars. See the results at: https://3v4l.org/Ti8YX Might be a doc issue if we consider that this behaviour is "normal" but it doesn't look documented and as per issue #30207, we previously emphasized that "func_get_args() returns the arguments *passed* to the function". Test script: --------------- <?php function issueWithArgs($x) { $x = 33; return func_get_args(); } var_dump(issueWithArgs(42)); Expected result: ---------------- array(1) { [0]=> int(42) } Actual result: -------------- array(1) { [0]=> int(33) } ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=71274&edit=1

« previous php.bugs (#198420) next »