>> $arr[] = 1, 2, 3; // push these 3 values
>> $arr[] = 1, 2, ... [3, 4, 5], 6; // push these 6 values
>
>Just to play with this... - normally an assignment evaluates to the
>value being assigned:
>
>var_dump($arr[] = 1); // int(1)
>
>What would this produce?
>
>var_dump($arr[] = 1, 2, 3);
>
>The first value, an array with 3 values or the full $arr?

Good point there, thanks!
Although I not a big fan on assigning values when calling functions it is a 
valid syntax, and I agree that introducing ambiguity does not make any sense.

I think these are actually the options to append multiple items to an array:

1. array_push($arr, 1, 2, 3);
2. $arr = […$arr, 1, 2, 3);
3. foreach ([1, 2, 3] as $i) {
        $arr[] = $i;
    }
4. foreach ([1,2,3] as $arr[]); // a bit weird, but it does work for php 5.4+[1]

I personally would go with the 2nd if posible, 1st for compatibility, but maybe 
it could be a bit less redundant with the David’s proposed syntax:

$arr[] = …[1, 2, 3];

I wonder if it will even better in terms of performance…

[1] https://3v4l.org/7rbiX

Regards,
Iván Arias.

Reply via email to