Re: [RFC] Display Function Arguments in Errors

From: Date: Tue, 07 Apr 2026 15:23:10 +0000
Subject: Re: [RFC] Display Function Arguments in Errors
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-130587@lists.php.net to get a copy of this message
On Apr 2, 2026, at 11:25 AM, Matthew Weier O'Phinney <mweierophinney@gmail.com> wrote: > > On Wed, Mar 11, 2026 at 10:56 AM Calvin Buckley <calvin@cmpct.info> wrote: > Based on the feedback I had from my proposal for function arguments in > errors last week, I'd like to introduce an RFC for it. Please let me > know what you think and please raise any possible issues. > > https://wiki.php.net/rfc/display_error_function_args > > Have you done any benchmarking on this? What is the performance impact when it is enabled > versus disabled? That information will be useful if this passes so that users can understand not > just the security impact of having this information reported in logs, but the performance impact. > > -- > Matthew Weier O'Phinney > mweierophinney@gmail.com > https://mwop.net/ > he/him FWIW, I actually did try running benchmark/benchmark.php. The difference is pretty much margin of error (somehow fewer instructions in some cases?), but I also don't expect to see much of any docrefs triggered in it either. For the sake of completeness: Without: { "Zend\/bench.php": { "instructions": "1979721332" }, "Zend\/bench.php JIT": { "instructions": "589555739" }, "Symfony Demo 2.2.3": { "instructions": "87285017" }, "Symfony Demo 2.2.3 JIT": { "instructions": "90024058" }, "Wordpress 6.2": { "instructions": "244605957" }, "Wordpress 6.2 JIT": { "instructions": "211892436" } } With: { "Zend\/bench.php": { "instructions": "1979721328" }, "Zend\/bench.php JIT": { "instructions": "589555784" }, "Symfony Demo 2.2.3": { "instructions": "87285011" }, "Symfony Demo 2.2.3 JIT": { "instructions": "90023734" }, "Wordpress 6.2": { "instructions": "244606014" }, "Wordpress 6.2 JIT": { "instructions": "211892519" } } You can try it yourself with this patch (set error_include_args as needed): diff --git a/benchmark/benchmark.php b/benchmark/benchmark.php index 0c2ac4c6010..6377c3ceb37 100644 --- a/benchmark/benchmark.php +++ b/benchmark/benchmark.php @@ -79,7 +79,8 @@ function runWordpress(bool $jit): array { /* FIXME: It might be better to use a stable version of PHP for this command because we can't * easily alter the phar file */ runPhpCommand([ - '-d error_reporting=0', + '-d error_reporting=22527', + '-d error_include_args=1', 'wp-cli.phar', 'core', 'install', @@ -122,6 +123,8 @@ function runValgrindPhpCgiCommand( '--', $phpCgi, '-T' . ($warmup ? $warmup . ',' : '') . $repeat, + '-d error_reporting=22527', + '-d error_include_args=1', '-d max_execution_time=0', '-d opcache.enable=1', '-d opcache.jit=' . ($jit ? 'tracing' : 'disable'), I'm working on something that triggers a lot of docrefs in a hot loop, but I also don't know how interesting that would be seeing as if you're getting thousands of docref-triggered messages a second, your program probably has an issue.

« previous php.internals (#130587) next »