Serialisering
Serialisering
Uppräkningar serialiseras annorlunda än objekt. Specifikt har de en ny serialiseringskod, "E", som specificerar namnet på enum-fallet. Deserialiseringsrutinen kan sedan använda detta för att sätta en variabel till det existerande singleton-värdet. Detta säkerställer att:
Suit::Hearts === unserialize(serialize(Suit::Hearts)); print serialize(Suit::Hearts); // E:11:"Suit:Hearts";
Vid deserialisering, om en enum och ett fall inte kan hittas för att matcha ett serialiserat värde, kommer en varning att utfärdas och false returneras.
Om en Pure Enum serialiseras till JSON, kommer ett fel att kastas. Om en Backed Enum serialiseras till JSON, kommer den endast att representeras av sitt skalära värde, i den lämpliga typen. Beteendet för båda kan åsidosättas genom att implementera JsonSerializable.
För print_r() är utmatningen av ett enum-fall något annorlunda än objekt för att minimera förvirring.
enum Foo { case Bar; } enum Baz: int { case Beep = 5; } print_r(Foo::Bar); print_r(Baz::Beep); /* Ger Foo Enum ( [name] => Bar ) Baz Enum:int { [name] => Beep [value] => 5 } */
Sidslut
Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.enumerations.serialization.php
PHP
Språkreferens
Språkreferens#Uppräkningar
Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/