PHP의 __set_state() 메소드에 대한 자세한 설명

藏色散人
풀어 주다: 2023-04-07 06:46:02
원래의
4716명이 탐색했습니다.

__set_state(), 이 정적 메서드는 클래스를 내보내기 위해 var_export()를 호출할 때 호출됩니다.

기능:

PHP 5.1.0부터 클래스를 내보내기 위해 var_export()를 호출하면 이 정적 메서드가 자동으로 호출됩니다.

매개변수:

이 메서드의 유일한 매개변수는 배열('속성' => 값, ...) 형식으로 정렬된 클래스 속성을 포함하는 배열입니다.

먼저 __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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿