1--TEST--
2TokenList: dimensions
3--EXTENSIONS--
4dom
5--FILE--
6<?php
7
8$dom = DOM\XMLDocument::createFromString('<root class="A B C 0"/>');
9$list = $dom->documentElement->classList;
10
11foreach (range(-1, 4) as $i) {
12    echo "--- $i ---\n";
13    var_dump($list[$i], isset($list[$i]), empty($list[$i]));
14}
15
16echo "--- \"0\" ---\n";
17var_dump($list["0"], isset($list["0"]), empty($list["0"]));
18
19echo "--- \"foo\" ---\n";
20try {
21    var_dump($list["foo"], isset($list["foo"]), empty($list["foo"]));
22} catch (TypeError $e) {
23    echo $e->getMessage(), "\n";
24}
25
26echo "--- 1.1 ---\n";
27var_dump($list[1.1], isset($list[1.1]), empty($list[1.1]));
28
29echo "--- true ---\n";
30var_dump($list[true], isset($list[true]), empty($list[true]));
31
32echo "--- false ---\n";
33var_dump($list[false], isset($list[false]), empty($list[false]));
34
35echo "--- ref ---\n";
36$tmp = 2;
37$ref =& $tmp;
38var_dump($list[$ref], isset($list[$ref]), empty($list[$ref]));
39
40?>
41--EXPECTF--
42--- -1 ---
43NULL
44bool(false)
45bool(true)
46--- 0 ---
47string(1) "A"
48bool(true)
49bool(false)
50--- 1 ---
51string(1) "B"
52bool(true)
53bool(false)
54--- 2 ---
55string(1) "C"
56bool(true)
57bool(false)
58--- 3 ---
59string(1) "0"
60bool(true)
61bool(true)
62--- 4 ---
63NULL
64bool(false)
65bool(true)
66--- "0" ---
67string(1) "A"
68bool(true)
69bool(false)
70--- "foo" ---
71Cannot access offset of type string on Dom\TokenList
72--- 1.1 ---
73
74Deprecated: Implicit conversion from float 1.1 to int loses precision in %s on line %d
75
76Deprecated: Implicit conversion from float 1.1 to int loses precision in %s on line %d
77
78Deprecated: Implicit conversion from float 1.1 to int loses precision in %s on line %d
79string(1) "B"
80bool(true)
81bool(false)
82--- true ---
83string(1) "B"
84bool(true)
85bool(false)
86--- false ---
87string(1) "A"
88bool(true)
89bool(false)
90--- ref ---
91string(1) "C"
92bool(true)
93bool(false)
94