PHP 8.4.22 Released!

Serialisierung

Aufzählungen werden anders serialisiert als Objekte. Insbesondere haben sie einen neuen Serialisierungscode "E", der den Namen des Enum-Falls angibt. Die Deserialisierungsroutine ist dann in der Lage, diesen Code zu verwenden, um eine Variable auf den vorhandenen Singleton-Wert zu setzen. Dadurch ist Folgendes gewährleistet:

<?php
enum Suit: string
{
case
Hearts = 'H';
case
Diamonds = 'D';
case
Clubs = 'C';
case
Spades = 'S';
}

Suit::Hearts === unserialize(serialize(Suit::Hearts));

print
serialize(Suit::Hearts);
// E:11:"Suit:Hearts";

Wenn bei der Deserialisierung kein Enum und kein Fall gefunden wird, der mit einem serialisierten Wert übereinstimmt, wird eine Warnung ausgegeben und false zurückgegeben.

Wenn eine Pure Enum in JSON serialisiert wird, wird ein Fehler ausgelöst. Wenn eine Backed Enum in JSON serialisiert wird, wird sie nur durch ihren skalaren Wert im entsprechenden Typ dargestellt. Das Verhalten von beiden kann durch die Implementierung von JsonSerializable überschrieben werden.

Um Verwechslungen zu vermeiden, unterscheidet sich die Ausgabe bei print_r() leicht von der bei Objekten.

<?php
enum Foo {
case
Bar;
}

enum
Baz: int {
case
Beep = 5;
}

print_r(Foo::Bar);
print_r(Baz::Beep);

/* Ergibt

Foo Enum (
[name] => Bar
)
Baz Enum:int {
[name] => Beep
[value] => 5
}
*/
add a note

User Contributed Notes 1 note

up
0
admin at monkacres dot se
2 days ago
With the try-catch block, it gave me this error
db.r103.websupport.seSuccessfully connected!Felmeddelande: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '?,?,?) SLEEP(1)' at line 1
Fatal error: Uncaught Error: Call to a member function bind_param() on null in /data/b/9/b978798f-dd6c-4ab7-a020-f3e998d6dfc0/monkacres.se/web/register.php:28 Stack trace: #0 {main} thrown in /data/b/9/b978798f-dd6c-4ab7-a020-f3e998d6dfc0/monkacres.se/web/register.php on line 28
And this is easy

First, add
$userName=$_POST['userName'] ?? '';
$emailVerify=$_POST['emailVerify'] ?? '';
$passWord=$_POST['passWord'] ?? '';
To Top