|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2020-10-30 16:17 UTC] nikic@php.net
-Status: Open
+Status: Verified
[2020-10-30 16:21 UTC] nikic@php.net
-Assigned To:
+Assigned To: nikic
[2020-10-30 16:24 UTC] nikic@php.net
[2020-10-30 16:24 UTC] nikic@php.net
-Status: Verified
+Status: Closed
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Nov 03 03:00:01 2025 UTC |
Description: ------------ Something goes wrong after generating a warning in the ReflectionFunction->invokeArgs() method. A Fatal error is thrown right after the Warning. Docker image php:8.0-rc-cli-alpine PHP 8.0.0RC3 (cli) (built: Oct 29 2020 21:50:53) ( NTS ) Test script: --------------- <?php $bar = new DateTime(); $args = [1, &$bar]; $function = function (int &$foo, DateTimeInterface &$bar) {}; (new ReflectionFunction($function))->invokeArgs($args); Expected result: ---------------- Warning: {closure}(): Argument #1 ($foo) must be passed by reference, value given in /app/test.php on line 9 Actual result: -------------- Warning: {closure}(): Argument #1 ($foo) must be passed by reference, value given in /app/test.php on line 9 Fatal error: Uncaught TypeError: {closure}(): Argument #2 ($bar) must be of type DateTimeInterface, number given in /app/test.php:6 Stack trace: #0 [internal function]: {closure}(1, Object(DateTime)) #1 /app/test.php(9): ReflectionFunction->invokeArgs(Array) #2 {main} thrown in /app/test.php on line 6