1--TEST--
2Only arrays and Traversables can be unpacked
3--FILE--
4<?php
5
6function test(...$args) {
7    var_dump($args);
8}
9
10try {
11    test(...null);
12} catch (Error $e) {
13    echo $e->getMessage(), "\n";
14}
15try {
16    test(...42);
17} catch (Error $e) {
18    echo $e->getMessage(), "\n";
19}
20try {
21    test(...new stdClass);
22} catch (Error $e) {
23    echo $e->getMessage(), "\n";
24}
25
26try {
27    test(1, 2, 3, ..."foo", ...[4, 5]);
28} catch (Error $e) {
29    echo $e->getMessage(), "\n";
30}
31try {
32    test(1, 2, 3, ...new StdClass, ...3.14, ...[4, 5]);
33} catch (Error $e) {
34    echo $e->getMessage(), "\n";
35}
36
37?>
38--EXPECT--
39Only arrays and Traversables can be unpacked
40Only arrays and Traversables can be unpacked
41Only arrays and Traversables can be unpacked
42Only arrays and Traversables can be unpacked
43Only arrays and Traversables can be unpacked
44