-
-
Notifications
You must be signed in to change notification settings - Fork 107
Expand file tree
/
Copy pathValidDefaultValueUnitTest.1.inc
More file actions
120 lines (96 loc) · 2.29 KB
/
ValidDefaultValueUnitTest.1.inc
File metadata and controls
120 lines (96 loc) · 2.29 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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?php
// No args.
function myFunction()
{
}
// No default args.
function myFunction($arg1)
{
}
// Valid
function myFunction($arg1, $arg2='hello')
{
}
// Valid with lots of args
function myFunction($arg1, $arg2, $arg3, $arg4='hello', $arg5=array(), $arg6='hello')
{
}
// Valid type hints
function myFunction(array $arg1, array $arg2=array())
{
}
// Invalid
function myFunction($arg2='hello', $arg1)
{
}
// Invalid with lots of args
function myFunction($arg1, $arg2, $arg3, $arg4='hello', $arg5, $arg6='hello')
{
}
// Invalid type hints
function myFunction(array $arg2=array(), array $arg1)
{
}
class myClass
{
// No args.
function myFunction()
{
}
// No default args.
function myFunction($arg1)
{
}
// Valid
function myFunction($arg1, $arg2='hello')
{
}
// Valid with lots of args
function myFunction($arg1, $arg2, $arg3, $arg4='hello', $arg5=array(), $arg6='hello')
{
}
// Valid type hints
function myFunction(array $arg1, array $arg2=array())
{
}
// Invalid
function myFunction($arg2='hello', $arg1)
{
}
// Invalid with lots of args
function myFunction($arg1, $arg2, $arg3, $arg4='hello', $arg5, $arg6='hello')
{
}
// Invalid type hints
function myFunction(array $arg2=array(), array $arg1)
{
}
}
function myFunc($req, $opt=null, ...$params) {}
// Type hinting with NULL
function foo(Foo $foo = null, $bar) {}
function foo(Foo $foo, $bar) {}
function foo(Foo $foo = null, $bar = true, $baz) {}
function foo($baz, Foo $foo = null, $bar = true) {}
function foo($baz, $bar = true, Foo $foo = null) {}
// Valid closure
$closure = function ($arg1, $arg2='hello') {};
// Invalid closure
$closure = function(array $arg2=array(), array $arg1) {}
$fn = fn($a = [], $b) => $a[] = $b;
class OnlyConstructorPropertyPromotion {
public function __construct(
public string $name = '',
protected $bar
) {}
}
class ConstructorPropertyPromotionMixedWithNormalParams {
public function __construct(
public(set) string $name = '',
?int $optionalParam = 0,
mixed $requiredParam,
) {}
}
// Safeguard correct handling of FQN null as default value.
function foo(Foo $foo = \null, $bar) {}
function foo(Foo $foo = \null, Foz $foz = \NULL, $bar = true, $baz) {}