Statement on glibc/iconv Vulnerability

Dizgeleştirme

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
}
*/
?>
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top