__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='男') { $this->name = $name; $this->age = $age; $this->sex = $sex; } } $person = new Person('小明'); // 初始赋值 var_export($person);
결과 보기:
Person::__set_state(array( 'sex' => '男', 'name' => '小明', 'age' => 25, ))
분명히 객체의 모든 속성을 인쇄합니다.
__set_state를 추가한 후 ():
계속 코드:
<?php class Person { public $sex; public $name; public $age; public function __construct($name="", $age=25, $sex='男') { $this->name = $name; $this->age = $age; $this->sex = $sex; } public static function __set_state($an_array) { $a = new Person(); $a->name = $an_array['name']; return $a; } } $person = new Person('小明'); // 初始赋值 $person->name = '小红'; var_export($person);
계속 결과 보기:
Person::__set_state(array( 'sex' => '男', 'name' => '小红', 'age' => 25, ))
위 내용은 PHP의 __set_state() 메소드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!