Sayılamaların dizgeleştirmesi nesnelerden farklıdır. Özellikle,
kendilerine özgü bir dizgeleştirme kodu olarak sayılama kılıfı ismini
belirten "E"
koduna sahiptir. Nesneleştirme sırasında
kod bunu mevcut tekil değeri bir değişkene atamakta kullanır. Sonuçta
aşağıdaki gibi bir durumun gerçeklenmesi sağlanır:
<?php
Deste::Kupalar === unserialize(serialize(Deste::Kupalar));
print serialize(Deste::Kupalar);
// E:14:"Deste::Kupalar";
?>
Nesneleştirme sırasında bir sayılama ve kılıfın eşleşeceği
dizgeleştirilmiş bir değer yoksa bir uyarı çıktılayıp
false
döndürülür.
Desteksiz bir sayılamayı JSON'a dizgeleştirme bir hataya yol açar. Destekli bir sayılamayı JSON'a dizgeleştirme ise uygun türdeki sayıl değeri ile gösterilir. Her iki davranış JsonSerializable gerçeklenerek geçersiz kılınabilir.
print_r() için, sayılama kılıfı çıktısı, karışıklığı azaltmak için nesnelerdekinden oldukça farklıdır.
<?php
enum Foo {
case Bar;
}
enum Baz: int {
case Beep = 5;
}
print_r(Foo::Bar);
print_r(Baz::Beep);
/* Çıktısı:
Foo Enum (
[name] => Bar
)
Baz Enum:int {
[name] => Beep
[value] => 5
}
*/
?>