ホームページ  >  記事  >  バックエンド開発  >  PHPの__set_state()メソッドの詳しい説明

PHPの__set_state()メソッドの詳しい説明

藏色散人
藏色散人オリジナル
2019-07-25 14:22:444694ブラウズ

__set_state()、この静的メソッドは、クラスをエクスポートするために var_export() を呼び出すときに呼び出されます。

関数:

PHP 5.1.0 以降、クラスをエクスポートするために var_export() が呼び出されるときに、この静的メソッドが自動的に呼び出されます。

パラメータ:

このメソッドの唯一のパラメータは、array('property' => value, ...) の形式で配置されたクラスを含む配列です。属性。

まず、__set_state() を追加せずにコードと実行結果を見てみましょう:

上記のコード:

<?php
class Person
{
    public $sex;
    public $name;
    public $age;
    public function __construct($name="",  $age=25, $sex=&#39;男&#39;)
    {
        $this->name = $name;
        $this->age  = $age;
        $this->sex  = $sex;
    }
}
$person = new Person(&#39;小明&#39;); // 初始赋值
var_export($person);

結果を確認してください:

Person::__set_state(array( &#39;sex&#39; => &#39;男&#39;, &#39;name&#39; => &#39;小明&#39;, &#39;age&#39; => 25, ))

明らかに、オブジェクト内のすべての属性が出力されます。

__set_state() を追加した後:

コードを続行します:

<?php
class Person
{
    public $sex;
    public $name;
    public $age;
    public function __construct($name="",  $age=25, $sex=&#39;男&#39;)
    {
        $this->name = $name;
        $this->age  = $age;
        $this->sex  = $sex;
    }
    public static function __set_state($an_array)
    {
        $a = new Person();
        $a->name = $an_array[&#39;name&#39;];
        return $a;
    }
}
$person = new Person(&#39;小明&#39;); // 初始赋值
$person->name = &#39;小红&#39;;
var_export($person);

続きを読みます結果:

Person::__set_state(array( &#39;sex&#39; => &#39;男&#39;, &#39;name&#39; => &#39;小红&#39;, &#39;age&#39; => 25, ))

以上がPHPの__set_state()メソッドの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。