@@ -189,11 +189,10 @@ final public static function get($enumerator)
189189 */
190190 final public static function byValue ($ value )
191191 {
192- if (!isset (self ::$ constants [static ::class])) {
193- self ::detectConstants (static ::class);
194- }
192+ $ constants = self ::$ constants [static ::class]
193+ ?? self ::detectConstants (static ::class);
195194
196- $ name = \array_search ($ value , self :: $ constants[ static ::class] , true );
195+ $ name = \array_search ($ value , $ constants , true );
197196 if ($ name === false ) {
198197 throw new InvalidArgumentException (sprintf (
199198 'Unknown value %s for enumeration %s ' ,
@@ -204,11 +203,8 @@ final public static function byValue($value)
204203 ));
205204 }
206205
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 ]);
212208 }
213209
214210 /**
@@ -243,9 +239,7 @@ final public static function byName(string $name)
243239 */
244240 final public static function byOrdinal (int $ ordinal )
245241 {
246- if (!isset (self ::$ names [static ::class])) {
247- self ::detectConstants (static ::class);
248- }
242+ $ constants = self ::$ constants [static ::class] ?? self ::detectConstants (static ::class);
249243
250244 if (!isset (self ::$ names [static ::class][$ ordinal ])) {
251245 throw new InvalidArgumentException (\sprintf (
@@ -256,11 +250,8 @@ final public static function byOrdinal(int $ordinal)
256250 }
257251
258252 $ 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 );
264255 }
265256
266257 /**
0 commit comments