@@ -109,7 +109,7 @@ final public function getOrdinal()
109
109
// detect ordinal
110
110
$ ordinal = 0 ;
111
111
$ value = $ this ->value ;
112
- foreach ($ this ::getConstants () as $ constValue ) {
112
+ foreach (static ::getConstants () as $ constValue ) {
113
113
if ($ value === $ constValue ) {
114
114
break ;
115
115
}
@@ -131,13 +131,12 @@ final public function getOrdinal()
131
131
final static public function get ($ value )
132
132
{
133
133
$ class = get_called_class ();
134
- $ id = $ class . '. ' . $ value ;
135
- if (isset (self ::$ instances [$ id ])) {
136
- return self ::$ instances [$ id ];
134
+ if (isset (self ::$ instances [$ class ][$ value ])) {
135
+ return self ::$ instances [$ class ][$ value ];
137
136
}
138
137
139
138
$ instance = new $ class ($ value );
140
- self ::$ instances [$ id ] = $ instance ;
139
+ self ::$ instances [$ class ][ $ value ] = $ instance ;
141
140
return $ instance ;
142
141
}
143
142
@@ -193,11 +192,9 @@ final static public function clear()
193
192
$ class = get_called_class ();
194
193
195
194
// clear instantiated enums
196
- $ prefix = $ class . '. ' ;
197
- $ prefixLength = strlen ($ prefix );
198
- foreach (self ::$ instances as $ id => $ enum ) {
199
- if (strncasecmp ($ prefix , $ id , $ prefixLength ) === 0 ) {
200
- unset(self ::$ instances [$ id ]);
195
+ foreach (self ::$ instances as $ instanceClass => $ enum ) {
196
+ if (strcasecmp ($ class , $ instanceClass ) === 0 ) {
197
+ unset(self ::$ instances [$ instanceClass ]);
201
198
}
202
199
}
203
200
0 commit comments