-
Notifications
You must be signed in to change notification settings - Fork 579
Expand file tree
/
Copy patharray-column.php
More file actions
98 lines (73 loc) · 1.55 KB
/
Copy patharray-column.php
File metadata and controls
98 lines (73 loc) · 1.55 KB
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php declare(strict_types = 1); // lint >= 8.2
namespace ArrayColumnRuleTest;
class NonFinalObject
{
/** @var string */
public $key = 'as';
}
final class FinalObject
{
public int $id = 1;
public string $name = 'a';
private int $secret = 2;
}
class MagicObject
{
public function __get(string $name): int
{
return 1;
}
public function __isset(string $name): bool
{
return true;
}
}
#[\AllowDynamicProperties]
class DynamicObject
{
}
enum Suit: string
{
case Hearts = 'H';
}
/**
* @param NonFinalObject[] $a
* @param FinalObject[] $b
* @param MagicObject[] $c
* @param DynamicObject[] $d
* @param Suit[] $e
* @param array<array<string, int>> $f
* @param list<FinalObject|array<string, int>> $g
*/
function test(array $a, array $b, array $c, array $d, array $e, array $f, array $g): void
{
array_column($a, 'key');
array_column($a, 'wrong_key');
array_column($b, 'id');
array_column($b, 'name');
array_column($b, 'missing');
array_column($b, 'name', 'id');
array_column($b, 'name', 'missing');
array_column($b, 'missing', 'missing2');
array_column($b, 'secret');
array_column($c, 'anything');
array_column($d, 'anything');
array_column($e, 'value');
array_column($e, 'name');
array_column($e, 'missing');
array_column($f, 'col');
array_column($g, 'missing');
}
/**
* @param FinalObject[] $b
*/
function dynamicColumnName(array $b, string $column): void
{
array_column($b, $column);
}
function bug5101(): void
{
$ar = [new NonFinalObject(), new NonFinalObject()];
array_column($ar, 'wrong_key');
array_column($ar, 'key');
}