БСриализация

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ ΠΈΠ½Π°Ρ‡Π΅, Ρ‡Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π’ частности, для пСрСчислСний Π²Π²Π΅Π»ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ сСриализации β€” "E", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° пСрСчислСния. По этому названию ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° дСсСриализации Π·Π°Ρ‚Π΅ΠΌ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ СдинствСнный экзСмпляр пСрСчислСния ΠΈ присваиваСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ:

<?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";

PHP выдаст ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ Π²Π΅Ρ€Π½Ρ‘Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false, Ссли Π½Π΅ Π½Π°ΠΉΠ΄Ρ‘Ρ‚ пСрСчислСниС ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ для сопоставлСния сСриализованному Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ.

ΠžΠΏΡ†ΠΈΡ allowed_classes Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ unserialize() Π½Π΅ влияСт Π½Π° пСрСчислСния.

ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ чистоС пСрСчислСниС Π² JSON-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ выбрасываСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ (Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π²Ρ‹Π·Π²Π°Π»ΠΈ с Ρ„Π»Π°Π³ΠΎΠΌ JSON_THROW_ON_ERROR β€” ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².). ΠŸΡ€ΠΈ сСриализации Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ пСрСчислСния Π² JSON-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΠ½ΠΎ прСдставляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ своим скалярным Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π² пСрСчислСнии. ПовСдСниС сСриализации ΠΊΠ°ΠΊ чистых, Ρ‚Π°ΠΊ ΠΈ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… пСрСчислСний пСрСопрСдСляСтся ΠΏΡƒΡ‚Ρ‘ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ интСрфСйса JsonSerializable.

Для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ print_r() Π²Ρ‹Π²ΠΎΠ΄ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° пСрСчислСния Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ отличаСтся ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρƒ.

<?php

enum Foo
{
case
Bar;
}

enum
Baz: int
{
case
Beep = 5;
}

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

/* Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚

Foo Enum
(
[name] => Bar
)
Baz Enum:int
(
[name] => Beep
[value] => 5
)
*/
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 1 note

up
0
admin at monkacres dot se ΒΆ
8 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'] ?? '';