On Thu, 6 Apr 2023 at 14:04, mickmackusa <mickmack...@gmail.com> wrote:

> I think it would be more intuitive to implement an array "appending"
> functionality with "concatenating" syntax.  The `.=` syntax already exists,
> but is forbidden from use on non-strings.  If you want to implement this
> preexisting syntax as an array concatenation operator, then it is a blank
> slate -- you can decree whatever behaviors you wish for it without blurring
> what the combined operator does with strings.
>

This would be the idea situation, but this is not correct.
Arrays, still in PHP 8, get automatically cast to strings during
concatenation or echo:
<?php
$a = [1, 2, 3];
$b = [4, 5, 6];
$a .= $b;
var_dump($a);
?>

Results in:
Warning: Array to string conversion

Warning: Array to string conversion
string(10) "ArrayArray"

See: https://3v4l.org/26Jba

I'm expecting that in PHP 9 this is going to throw a TypeError similarly to
how non-string castable objects throw a TypeError in PHP 8.
But because this was "only" a notice in PHP 7, this specific change only
got promoted to an E_WARNING.

Thus, this suggestion is not possible until the major version, but I do
prefer this compared to the weird $a[...] syntax.

Bbet regards,

George P. Banyard

Reply via email to