File tree Expand file tree Collapse file tree 2 files changed +27
-3
lines changed Expand file tree Collapse file tree 2 files changed +27
-3
lines changed Original file line number Diff line number Diff line change @@ -81,7 +81,15 @@ public function isVariadic(): bool
81
81
82
82
public function isNullable (): bool
83
83
{
84
- return $ this ->type ->isNullable ();
84
+ if ($ this ->type ->isNullable ()) {
85
+ return true ;
86
+ }
87
+
88
+ if ($ this ->getDefaultValue () === "null " ) {
89
+ return true ;
90
+ }
91
+
92
+ return $ this ->getDefaultValue () === "NULL " ;
85
93
}
86
94
87
95
/*
@@ -94,7 +102,7 @@ public function getInitializer(): string
94
102
95
103
public function hasDefaultValue (): bool
96
104
{
97
- return isset ($ this ->parameter -> initializer ) ;
105
+ return property_exists ($ this ->parameter , ' initializer ' ) && $ this -> parameter -> initializer !== null ;
98
106
}
99
107
100
108
public function getDefaultValue (): ?string
Original file line number Diff line number Diff line change @@ -137,9 +137,21 @@ private function displayParamsWithType(array $params): string
137
137
$ optDetected = false ;
138
138
139
139
foreach ($ params as $ param ) {
140
- $ paramAsString = $ param ->getSignatureType ();
140
+ $ paramAsString = '' ;
141
+ $ typeDetected = false ;
142
+
143
+ // parameters can not have type void
144
+ if ($ param ->getSignatureType () !== 'void ' ) {
145
+ $ paramAsString = $ param ->getSignatureType ();
146
+ }
147
+
141
148
if ($ paramAsString !== '' ) {
142
149
$ paramAsString .= ' ' ;
150
+ if ($ param ->isNullable () && $ paramAsString [0 ] !== "? " ) {
151
+ $ paramAsString = "? " . $ paramAsString ;
152
+ }
153
+
154
+ $ typeDetected = true ;
143
155
}
144
156
145
157
$ paramName = $ param ->getParameterName ();
@@ -161,6 +173,10 @@ private function displayParamsWithType(array $params): string
161
173
$ paramAsString .= ' = ' .$ this ->defaultValueToString ($ defaultValue );
162
174
} elseif ($ optDetected && !$ param ->isVariadic ()) {
163
175
$ paramAsString .= ' = null ' ;
176
+
177
+ if ($ typeDetected && $ paramAsString [0 ] !== "? " ) {
178
+ $ paramAsString = "? " . $ paramAsString ;
179
+ }
164
180
}
165
181
$ paramsAsString [] = $ paramAsString ;
166
182
}
You can’t perform that action at this time.
0 commit comments