360 of 410 menu

__set_state Metodu

__set_state metodu statiktir ve var_export fonksiyonu bir nesne üzerinde kullanıldığında otomatik olarak çağrılır. Geri yüklenmiş özelliklere sahip yeni bir sınıf örneği döndürmelidir. Bu metod nesnelerin serileştirilmesi ve serileştirmenin çözülmesi için kullanışlıdır.

Sözdizimi

public static function __set_state(array $properties): object

Örnek

Bir sınıf oluşturalım ve içinde __set_state metodunu uygulayalım:

<?php class MyClass { public $prop1; public $prop2; public function __construct($val1, $val2) { $this->prop1 = $val1; $this->prop2 = $val2; } public static function __set_state($array) { return new self($array['prop1'], $array['prop2']); } } $obj = new MyClass('a', 'b'); $exported = var_export($obj, true); eval('$newObj = ' . $exported . ';'); var_dump($newObj); ?>

Kodun çalıştırılmasının sonucu:

object(MyClass)#2 (2) { ["prop1"]=> string(1) "a" ["prop2"]=> string(1) "b" }

Örnek

__set_state metodunun özel (private) özelliklerle kullanımı:

<?php class PrivateClass { private $secret; public function __construct($value) { $this->secret = $value; } public static function __set_state($array) { $obj = new self($array['secret']); return $obj; } } $privateObj = new PrivateClass('12345'); $exported = var_export($privateObj, true); eval('$newPrivateObj = ' . $exported . ';'); var_dump($newPrivateObj); ?>

Kodun çalıştırılmasının sonucu:

object(PrivateClass)#2 (1) { ["secret":"PrivateClass":private]=> string(5) "12345" }

Ayrıca Bakınız

  • var_export fonksiyonu,
    bir değişkeni string olarak dışa aktarır
  • __sleep metodu,
    nesne serileştirilmeden önce çağrılır
  • __wakeup metodu,
    nesne serileştirmesi çözülürken çağrılır
Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet