Re: [RFC] Deprecations for PHP 8.6

From: Date: Thu, 02 Jul 2026 00:45:55 +0000
Subject: Re: [RFC] Deprecations for PHP 8.6
References: 1 2 3 4 5 6 7 8 9 10 11  Groups: php.internals 
Request: Send a blank email to internals+get-131691@lists.php.net to get a copy of this message
On Thu, 2 Jul 2026 at 01:11, Juliette Reinders Folmer <php-internals_nospam@adviesenzo.nl> wrote: > Ahum.... I'm one of the maintainers of the WordPress Coding Standards, which is the team > which would address these type of syntax changes for WP. Fair enough, and I'll happily take your word on the WP side. So I withdraw the "cautious about treating it as WP's position" point. It doesn't change my conclusion, though. That a group of core committers has repeatedly blocked short-array syntax for their own codebase is entirely their prerogative, but it's a project style decision, not an argument about the language. WordPress doesn't set PHP's direction, and "one large project prefers the older form" can't be the reason PHP keeps a redundant construct indefinitely. Styles adapt to the language at the version they target; that's the normal direction of the relationship. > The fact that the list() name may be confusing is IMO not a > valid argument. That keyword has been in use for that particular purpose since a very long time in > PHP - and even longer in other languages. I disagree. As far as I'm aware, no other language uses list as the *destructuring construct*; please point me to one if you know it, I'd be genuinely interested. The languages I know all use a bracket/paren form with no keyword: JS [a, b] = arr, Python a, b = seq, Rust let [a, b] = arr, Swift let (a, b) = t. Others, such as SML, OCaml, and Haskell, have a "List" module or type, but again, that's a different thing. Perl is the closest relative and I suspect PHP's inspiration, but Perl writes it as bare parentheses, ($a, $b) = @arr, and calls the operation "list assignment," where "list" means the parenthesised list of values. There's no list(...) keyword doing the unpacking. And that actually cuts the other way: Perl can call it "list assignment" because Perl has a genuine first-class list. PHP doesn't have a list type at all, so the keyword names something that doesn't exist in the language. It destructures an array and even accepts keys (list("k" => $v) = $a), which a genuine "list" would not. Cheers, Seifeddine

« previous php.internals (#131691) next »