1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
<?php declare(strict_types = 1); /** * Abstract data transfer object. */
/** * @implements ArrayAccess<string,mixed> */ #[AllowDynamicProperties] abstract class QM_Data implements \ArrayAccess { /** * @var array<string, mixed> */ public $types = array();
/** * @var array<string, array<string, mixed>> * @phpstan-var array<string, array{ * component: string, * ltime: float, * types: array<array-key, int>, * }> */ public $component_times = array();
/** * @param mixed $offset * @param mixed $value * @return void */ #[ReturnTypeWillChange] final public function offsetSet( $offset, $value ) { if ( is_string( $offset ) ) { $this->$offset = $value; } }
/** * @param mixed $offset * @return bool */ #[ReturnTypeWillChange] final public function offsetExists( $offset ) { return is_string( $offset ) && isset( $this->$offset ); }
/** * @param mixed $offset * @return void */ #[ReturnTypeWillChange] final public function offsetUnset( $offset ) { // @TODO might be able to no-op this if ( is_string( $offset ) ) { unset( $this->$offset ); } }
/** * @param mixed $offset * @return mixed */ #[ReturnTypeWillChange] final public function offsetGet( $offset ) { return ( is_string( $offset ) && isset( $this->$offset ) ) ? $this->$offset : null; } }
|