PHP에서는 현재 환경에서 정의되지 않거나 보이지 않는 클래스 속성에 값을 할당할 때 "__set()" 메서드가 자동으로 호출됩니다. 구문 형식은 "public function __set($key, $value){... ; }", 두 개의 매개변수를 받습니다. 하나는 속성 이름을 나타내고 다른 하나는 속성 값을 나타냅니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터
객체 지향 프로그래밍에서 PHP는 프로그래밍에 많은 편의를 제공하는 일련의 매직 메소드를 제공합니다. PHP에서 역할은 매우 중요합니다. PHP의 매직 메소드는 일반적으로 __(두 개의 밑줄)로 시작하며 명시적으로 호출할 필요는 없지만 특정 조건에서 자동으로 호출됩니다.
__set() 메소드
현재 환경에서 정의되지 않거나 보이지 않는 클래스 속성에 값을 할당하면 __set() 메소드가 자동으로 호출됩니다. 이 메소드를 정의하는 구문 형식은 다음과 같습니다.
public function __set($key, $value){ ... ... ; }
그 중 $key 매개변수는 연산할 변수의 이름이고, $value는 $key 변수의 값입니다.
【예제】 다음은 __set() 메소드의 사용법을 보여주기 위해 간단한 예시를 사용합니다.
<?php class Website{ public $name; private $url; public function __set($key, $value){ echo '为“'.$key.'”赋值“'.$value.'”失败!<br>'; } } $object = new Website(); $object -> name = 'php中文网'; $object -> url = 'https://www.php.cn/'; $object -> title = 'PHP教程'; ?>
실행 결과는 다음과 같습니다.
为“url”赋值“https://www.php.cn/”失败! 为“title”赋值“PHP教程”失败!
__set() 메서드의 특성을 이용하면 __set() 메서드를 사용하여 private 키워드로 수정된 클래스의 속성을 할당하거나 수정할 수 있습니다. 아래와 같이
<?php class Website{ public $name; private $url = ''; public function __set($key, $value){ if(isset($this->$key)){ $this -> $key = $value; }else{ echo '为“'.$key.'”赋值“'.$value.'”失败!<br>'; } } public function getUrl(){ echo $this -> url; } } $object = new Website(); $object -> name = 'php中文网'; $object -> url = 'https://www.php.cn/'; $object -> title = 'PHP教程'; $object -> getUrl(); ?>
실행 결과는 다음과 같습니다.
为“title”赋值“PHP教程”失败! https://www.php.cn/
추천 학습: "PHP Video Tutorial"
위 내용은 PHP __set 매직 메소드를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!