360 of 410 menu

__set_state ක්‍රමය

__set_state ක්‍රමය ස්ථිතික වන අතර වස්තුවක් මත var_export ශ්‍රිතය භාවිතා කරන විට ස්වයංක්‍රීයව කැඳවනු ලැබේ. එය ප්‍රතිස්ථාපිත ගුණාංග සමඟ පන්තියේ නව අවස්ථාවක් ආපසු දැමිය යුතුය. වස්තු serialization සහ deserialization සඳහා මෙම ක්‍රමය ප්‍රයෝජනවත් වේ.

වාක්‍ය රචනය

public static function __set_state(array $properties): object

උදාහරණය

පන්තියක් සාදා එහි __set_state ක්‍රමය ක්‍රියාත්මක කරමු:

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

කේතය ක්‍රියාත්මක කිරීමේ ප්‍රතිඵලය:

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

උදාහරණය

පුද්ගලික ගුණාංග සමඟ __set_state භාවිතා කිරීම:

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

කේතය ක්‍රියාත්මක කිරීමේ ප්‍රතිඵලය:

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

මෙයද බලන්න

  • var_export ශ්‍රිතය,
    විචල්‍යය ස්ට්‍රිංගයකට නිර්යාත කරයි
  • __sleep ක්‍රමය,
    වස්තුව serialize කිරීමට පෙර කැඳවනු ලැබේ
  • __wakeup ක්‍රමය,
    වස්තුව deserialize කරන විට කැඳවනු ලැබේ
සිංහල
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
අපි වෙබ් අඩවිය ක්‍රියාත්මක කිරීම, විශ්ලේෂණය සහ පුද්ගලීකරණය සඳහා කුකී භාවිතා කරමු. දත්ත සැකසීම සිදුකරනු ලබන්නේ ගෝපනීයතා ප්‍රතිපත්තිය අනුව ය.
සියල්ල පිළිගන්න කොන්දේසි ප්‍රතික්ෂේප කරන්න