serialize

(PHP 4, PHP 5, PHP 7, PHP 8)

serializeBir değerin saklanabilir bir gösterimini üretir

Açıklama

serialize(mixed$değer): string

Bir değerin saklanabilir bir gösterimini üretir.

PHP değerlerini, yapısını ve türünü kaybetmeden saklamak veya aktarmak için kullanışlıdır.

Böyle bir değerden tekrar özgün değeri elde etmek için unserialize() işlevini kullanın.

Bağımsız Değişkenler

değer

Dizgeleştirilecek değer. serialize() işlevi, resource türü ve bazı nesneler hariç her türü dizgeleştirebilir. Hatta kendine gönderimli dizileri bile dizgeleştirebilirsiniz. Dizgeleştirdiğiniz dizi veya nesnelerin içindeki döngüsel gönderimler bile saklanabilir. Bunlar dışında kalan gönderimler kaybedilir.

PHP nesneleri dizgeleştirirken önce __sleep veya __serialize() üye işlevlerini çağırmaya çalışılır. Bu işlem, nesneye dizgeleştirme öncesinde bir takım temizlikler yapabilmesi imkanını tanır. Benzer şekilde, unserialize() kullanılarak nesne özgün durumuna getirilirken __unserialize() veya __wakeup() üye işlevleri çağrılmaya çalışılır.

Bilginize:

Nesnenin özel üyelerinin isimlerinin önünde sınıf ismi, protected üyelerin isimlerinin önünde ise bir '*' bulunur. İsimlerin başına getirilen bu değerler her iki tarafta null baytlarla ifade edilirler.

Dönen Değerler

Belirtilen değerin herhangi bir yerde saklanabilecek, akımlar üzerinden aktarılabilen bir gösterimini döndürür.

Bunun ikil bir dizge oluşuna, null baytlar içerebileceğine ve ikil olarak ele alınabileceğine dikkat ediniz. Örneğin, serialize() çıktısının genelde bir veritabanının bir CHAR veya TEXT alanında değil bir BLOB alanında saklanması gerekir.

Örnekler

Örnek 1 - serialize() örneği

<?php
// $session_data, geçerli kullanıcı için oturum bilgisini
// içeren çok boyutlu bir dizi içerir. İsteğin sonunda bu diziyi bir
// veritabanında saklamak için serialize() işlevini kullanacağız.

$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn,
"UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $_SERVER['PHP_AUTH_USER']);
if (!
odbc_execute($stmt, $sqldata)) {
$stmt = odbc_prepare($conn,
"INSERT INTO sessions (id, data) VALUES(?, ?)");
if (!
odbc_execute($stmt, array_reverse($sqldata))) {

}
}
?>

Notlar

Bilginize:

Yerleşik PHP nesenelerinin çoğunun dizgeleştirilemeyeceğine dikkar ediniz. Bu bakımda ya Serializable arayüzü veya sihirli __serialize()/__unserialize() veya __sleep()/__wakeup() yöntemleri kullanılarak gerçeklenir. Dahili bir sınıf bu gereksinimleri sağlamıyorsa gerektiği gibi dizgeleştirilemez.

Yukarıdaki kuralın geçmişten gelen bazı istisnaları olup bazı dahili nesneler arayüz gerçeklemeden veya malum yöntemleri kullanmadan dizgeleştirilebilir.

Uyarı

serialize() işlevi nesneleri dizgeleştirirken, azami uyumluluğu sağlamak için isimalanlı sınıfların sınıf isimlerinin sonuna tersbölü konmaz.

Ayrıca Bakınız

To Top