1--TEST--
2Type check in call_user_func_array() + array_slice() optimization
3--FILE--
4<?php
5
6$array = [1, 2, 3];
7
8try {
9    $len = [];
10    call_user_func_array('var_dump', array_slice($array, 0, $len));
11} catch (TypeError $e) {
12    echo $e->getMessage(), "\n";
13}
14
15$len = 2.0;
16call_user_func_array('var_dump', array_slice($array, 0, $len));
17
18$len = null;
19call_user_func_array('var_dump', array_slice($array, 1, $len));
20
21?>
22--EXPECT--
23array_slice(): Argument #3 ($length) must be of type ?int, array given
24int(1)
25int(2)
26int(2)
27int(3)
28