@@ -189,11 +189,10 @@ final public static function get($enumerator)
189
189
*/
190
190
final public static function byValue ($ value )
191
191
{
192
- if (!isset (self ::$ constants [static ::class])) {
193
- self ::detectConstants (static ::class);
194
- }
192
+ $ constants = self ::$ constants [static ::class]
193
+ ?? self ::detectConstants (static ::class);
195
194
196
- $ name = \array_search ($ value , self :: $ constants[ static ::class] , true );
195
+ $ name = \array_search ($ value , $ constants , true );
197
196
if ($ name === false ) {
198
197
throw new InvalidArgumentException (sprintf (
199
198
'Unknown value %s for enumeration %s ' ,
@@ -204,11 +203,8 @@ final public static function byValue($value)
204
203
));
205
204
}
206
205
207
- if (!isset (self ::$ instances [static ::class][$ name ])) {
208
- self ::$ instances [static ::class][$ name ] = new static (self ::$ constants [static ::class][$ name ]);
209
- }
210
-
211
- return self ::$ instances [static ::class][$ name ];
206
+ return self ::$ instances [static ::class][$ name ]
207
+ ?? self ::$ instances [static ::class][$ name ] = new static ($ constants [$ name ]);
212
208
}
213
209
214
210
/**
@@ -243,9 +239,7 @@ final public static function byName(string $name)
243
239
*/
244
240
final public static function byOrdinal (int $ ordinal )
245
241
{
246
- if (!isset (self ::$ names [static ::class])) {
247
- self ::detectConstants (static ::class);
248
- }
242
+ $ constants = self ::$ constants [static ::class] ?? self ::detectConstants (static ::class);
249
243
250
244
if (!isset (self ::$ names [static ::class][$ ordinal ])) {
251
245
throw new InvalidArgumentException (\sprintf (
@@ -256,11 +250,8 @@ final public static function byOrdinal(int $ordinal)
256
250
}
257
251
258
252
$ name = self ::$ names [static ::class][$ ordinal ];
259
- if (isset (self ::$ instances [static ::class][$ name ])) {
260
- return self ::$ instances [static ::class][$ name ];
261
- }
262
-
263
- return self ::$ instances [static ::class][$ name ] = new static (self ::$ constants [static ::class][$ name ], $ ordinal );
253
+ return self ::$ instances [static ::class][$ name ]
254
+ ?? self ::$ instances [static ::class][$ name ] = new static ($ constants [$ name ], $ ordinal );
264
255
}
265
256
266
257
/**
0 commit comments