On Thu, 13 Aug 2026 at 19:25, <[email protected]> wrote: > > Hi! > > I'm a seasoned PHP developer (started around when PHP 2 was still in use), > yet this is the first time I'm getting involved beyond documentation fixes. I > have ~0 knowledge in the internals, so bear with me. > > Since I've been around that long, I've seen PHP evolve steadily. But one > thing I kept asking myself was why the old array syntax is still promoted by > some parts of user-facing functions, namely var_export. That happens to for > example be used by tools like PhpStorm/Xdebug to copy current contents of > variables while debugging. > > My personal preferences (deprecate/kill the old array syntax altogether) > aside, I wonder what the path forward is and what blocks it. RFC > var-export-array-syntax has been created 6 years ago but I cannot see why it > stalled, esp. since it seems to be confined to a very specific part of the > source code. > > I remember to have read somewhere that the current syntax is used in many > phpt files which would have to be adapted. Given the current day and age, > that sounds like something that AI would do while asleep. So what else would > be an issue? > > So I thought I'd ask here first before creating yet another RFC that might go > stale just as quickly as the existing one. > > My concrete proposal: > 1. add a (user) config switch that allows to enable var_dump to use the new > array syntax, off by default in whichever PHP version this land first (e.g. > 8.6 if it's not too late already). phpt files can stay as is, but a new test > for when the switch is On would be needed. > 2. switch the default to On in a later PHP version (9.0 the latest), then > adapting the phpt files > 3. first deprecate and then remove the config switch in even later versions > > WDYT? > > Greetings, > > Jens
Hi Jens, IMHO, the two main reasons for the lack of change are apathy and lack of agreement as to what exactly the better syntax is. There have been multiple proposals to change this. There was also https://wiki.php.net/rfc/readable_var_representation RFC, which was rejected. The var_export() function is supposed to be PHP-executable first, and human-readable second. So as long as the code can be understood by humans, copied into a PHP file and executed, the function works as designed. As long as the old array syntax is available in PHP, the var_export() function doesn't require any changes. So why change anything if the format doesn't matter? Secondly, whenever the output of var_export is mentioned, people start complaining about how many things look "wrong" in its output. If we only change the output to use short array syntax, people will ask why this change was made and not the others. Because of this, a new function was proposed as a better option, not without its own bikeshedding. I think a lot of PHP developers would welcome the change to var_export's output, but first you would have to provide solid arguments for the above two points. Regards, Kamil
