php-src/Zend/tests/list_self_assign.phpt
Nikita Popov bdf1430eeb Support list($a, $b) = $a
By compiling the RHS $a as a non-CV fetch.

This worked as expected in PHP 5, but broke in PHP 7 due to the
different assign order. However the new implementation is more
general, in that it allows $a on the LHS in any place, not just
the first element.
2015-02-24 19:08:23 +01:00

57 lines
705 B
PHP

--TEST--
Test variable occuring on both LHS and RHS of list()
--FILE--
<?php
$a = [1, 2, 3];
list($a, $b, $c) = $a;
var_dump($a, $b, $c);
$b = [1, 2, 3];
list($a, $b, $c) = $b;
var_dump($a, $b, $c);
$c = [1, 2, 3];
list($a, $b, $c) = $c;
var_dump($a, $b, $c);
$a = [[1, 2], 3];
list(list($a, $b), $c) = $a;
var_dump($a, $b, $c);
$b = [[1, 2], 3];
list(list($a, $b), $c) = $b;
var_dump($a, $b, $c);
$b = [1, [2, 3]];
list($a, list($b, $c)) = $b;
var_dump($a, $b, $c);
$c = [1, [2, 3]];
list($a, list($b, $c)) = $c;
var_dump($a, $b, $c);
?>
--EXPECT--
int(1)
int(2)
int(3)
int(1)
int(2)
int(3)
int(1)
int(2)
int(3)
int(1)
int(2)
int(3)
int(1)
int(2)
int(3)
int(1)
int(2)
int(3)
int(1)
int(2)
int(3)