---TEST--\r
-Basic array unpacking\r
---FILE--\r
-<?php\r
-$array = [1, 2, 3];\r
-\r
-function getArr() {\r
- return [4, 5];\r
-}\r
-\r
-function arrGen() {\r
- for($i = 11; $i < 15; $i++) {\r
- yield $i;\r
- }\r
-}\r
-\r
-var_dump([...[]]);\r
-var_dump([...[1, 2, 3]]);\r
-var_dump([...$array]);\r
-var_dump([...getArr()]);\r
-var_dump([...arrGen()]);\r
-var_dump([...new ArrayIterator(['a', 'b', 'c'])]);\r
-\r
-var_dump([0, ...$array, ...getArr(), 6, 7, 8, 9, 10, ...arrGen()]);\r
-var_dump([0, ...$array, ...$array, 'end']);\r
-\r
---EXPECT--\r
-array(0) {\r
-}\r
-array(3) {\r
- [0]=>\r
- int(1)\r
- [1]=>\r
- int(2)\r
- [2]=>\r
- int(3)\r
-}\r
-array(3) {\r
- [0]=>\r
- int(1)\r
- [1]=>\r
- int(2)\r
- [2]=>\r
- int(3)\r
-}\r
-array(2) {\r
- [0]=>\r
- int(4)\r
- [1]=>\r
- int(5)\r
-}\r
-array(4) {\r
- [0]=>\r
- int(11)\r
- [1]=>\r
- int(12)\r
- [2]=>\r
- int(13)\r
- [3]=>\r
- int(14)\r
-}\r
-array(3) {\r
- [0]=>\r
- string(1) "a"\r
- [1]=>\r
- string(1) "b"\r
- [2]=>\r
- string(1) "c"\r
-}\r
-array(15) {\r
- [0]=>\r
- int(0)\r
- [1]=>\r
- int(1)\r
- [2]=>\r
- int(2)\r
- [3]=>\r
- int(3)\r
- [4]=>\r
- int(4)\r
- [5]=>\r
- int(5)\r
- [6]=>\r
- int(6)\r
- [7]=>\r
- int(7)\r
- [8]=>\r
- int(8)\r
- [9]=>\r
- int(9)\r
- [10]=>\r
- int(10)\r
- [11]=>\r
- int(11)\r
- [12]=>\r
- int(12)\r
- [13]=>\r
- int(13)\r
- [14]=>\r
- int(14)\r
-}\r
-array(8) {\r
- [0]=>\r
- int(0)\r
- [1]=>\r
- int(1)\r
- [2]=>\r
- int(2)\r
- [3]=>\r
- int(3)\r
- [4]=>\r
- int(1)\r
- [5]=>\r
- int(2)\r
- [6]=>\r
- int(3)\r
- [7]=>\r
- string(3) "end"\r
-}\r
+--TEST--
+Basic array unpacking
+--FILE--
+<?php
+$array = [1, 2, 3];
+
+function getArr() {
+ return [4, 5];
+}
+
+function arrGen() {
+ for($i = 11; $i < 15; $i++) {
+ yield $i;
+ }
+}
+
+var_dump([...[]]);
+var_dump([...[1, 2, 3]]);
+var_dump([...$array]);
+var_dump([...getArr()]);
+var_dump([...arrGen()]);
+var_dump([...new ArrayIterator(['a', 'b', 'c'])]);
+
+var_dump([0, ...$array, ...getArr(), 6, 7, 8, 9, 10, ...arrGen()]);
+var_dump([0, ...$array, ...$array, 'end']);
+
+--EXPECT--
+array(0) {
+}
+array(3) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+}
+array(3) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+}
+array(2) {
+ [0]=>
+ int(4)
+ [1]=>
+ int(5)
+}
+array(4) {
+ [0]=>
+ int(11)
+ [1]=>
+ int(12)
+ [2]=>
+ int(13)
+ [3]=>
+ int(14)
+}
+array(3) {
+ [0]=>
+ string(1) "a"
+ [1]=>
+ string(1) "b"
+ [2]=>
+ string(1) "c"
+}
+array(15) {
+ [0]=>
+ int(0)
+ [1]=>
+ int(1)
+ [2]=>
+ int(2)
+ [3]=>
+ int(3)
+ [4]=>
+ int(4)
+ [5]=>
+ int(5)
+ [6]=>
+ int(6)
+ [7]=>
+ int(7)
+ [8]=>
+ int(8)
+ [9]=>
+ int(9)
+ [10]=>
+ int(10)
+ [11]=>
+ int(11)
+ [12]=>
+ int(12)
+ [13]=>
+ int(13)
+ [14]=>
+ int(14)
+}
+array(8) {
+ [0]=>
+ int(0)
+ [1]=>
+ int(1)
+ [2]=>
+ int(2)
+ [3]=>
+ int(3)
+ [4]=>
+ int(1)
+ [5]=>
+ int(2)
+ [6]=>
+ int(3)
+ [7]=>
+ string(3) "end"
+}
---TEST--\r
-Array unpacking with classes\r
---FILE--\r
-<?php\r
-\r
-class C {\r
- public const FOO = [0, ...self::ARR, 4];\r
- public const ARR = [1, 2, 3];\r
- public static $bar = [...self::ARR];\r
-}\r
-\r
-class D {\r
- public const A = [...self::B];\r
- public const B = [...self::A];\r
-}\r
-\r
-var_dump(C::FOO);\r
-var_dump(C::$bar);\r
-\r
-try {\r
- var_dump(D::A);\r
-} catch (Error $ex) {\r
- echo "Exception: " . $ex->getMessage() . "\n";\r
-}\r
---EXPECT--\r
-array(5) {\r
- [0]=>\r
- int(0)\r
- [1]=>\r
- int(1)\r
- [2]=>\r
- int(2)\r
- [3]=>\r
- int(3)\r
- [4]=>\r
- int(4)\r
-}\r
-array(3) {\r
- [0]=>\r
- int(1)\r
- [1]=>\r
- int(2)\r
- [2]=>\r
- int(3)\r
-}\r
-Exception: Cannot declare self-referencing constant 'self::B'
\ No newline at end of file
+--TEST--
+Array unpacking with classes
+--FILE--
+<?php
+
+class C {
+ public const FOO = [0, ...self::ARR, 4];
+ public const ARR = [1, 2, 3];
+ public static $bar = [...self::ARR];
+}
+
+class D {
+ public const A = [...self::B];
+ public const B = [...self::A];
+}
+
+var_dump(C::FOO);
+var_dump(C::$bar);
+
+try {
+ var_dump(D::A);
+} catch (Error $ex) {
+ echo "Exception: " . $ex->getMessage() . "\n";
+}
+--EXPECT--
+array(5) {
+ [0]=>
+ int(0)
+ [1]=>
+ int(1)
+ [2]=>
+ int(2)
+ [3]=>
+ int(3)
+ [4]=>
+ int(4)
+}
+array(3) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+}
+Exception: Cannot declare self-referencing constant 'self::B'
---TEST--\r
-Array unpacking with element rc=1\r
---FILE--\r
-<?php\r
-\r
-$a = 1;\r
-$b = [&$a]; //array (0 => (refcount=2, is_ref=1)=1)\r
-\r
-unset($a); //array (0 => (refcount=1, is_ref=1)=1)\r
-\r
-var_dump([...$b]); //array (0 => (refcount=0, is_ref=0)=1)\r
-\r
---EXPECT--\r
-array(1) {\r
- [0]=>\r
- int(1)\r
-}\r
+--TEST--
+Array unpacking with element rc=1
+--FILE--
+<?php
+
+$a = 1;
+$b = [&$a]; //array (0 => (refcount=2, is_ref=1)=1)
+
+unset($a); //array (0 => (refcount=1, is_ref=1)=1)
+
+var_dump([...$b]); //array (0 => (refcount=0, is_ref=0)=1)
+
+--EXPECT--
+array(1) {
+ [0]=>
+ int(1)
+}