>  기사  >  백엔드 개발  >  PHP __set 매직 메소드를 사용하는 방법

PHP __set 매직 메소드를 사용하는 방법

青灯夜游
青灯夜游원래의
2021-06-18 18:06:441705검색

PHP에서는 현재 환경에서 정의되지 않거나 보이지 않는 클래스 속성에 값을 할당할 때 "__set()" 메서드가 자동으로 호출됩니다. 구문 형식은 "public function __set($key, $value){... ; }", 두 개의 매개변수를 받습니다. 하나는 속성 이름을 나타내고 다른 하나는 속성 값을 나타냅니다.

PHP __set 매직 메소드를 사용하는 방법

이 튜토리얼의 운영 환경: 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 &#39;为“&#39;.$key.&#39;”赋值“&#39;.$value.&#39;”失败!<br>&#39;;
        }
    }
    $object          = new Website();
    $object -> name  = &#39;php中文网&#39;;
    $object -> url   = &#39;https://www.php.cn/&#39;;
    $object -> title = &#39;PHP教程&#39;;
?>

실행 결과는 다음과 같습니다.

为“url”赋值“https://www.php.cn/”失败!
为“title”赋值“PHP教程”失败!

__set() 메서드의 특성을 이용하면 __set() 메서드를 사용하여 private 키워드로 수정된 클래스의 속성을 할당하거나 수정할 수 있습니다. 아래와 같이

<?php
    class Website{
        public $name;
        private $url = &#39;&#39;;
        public function __set($key, $value){
            if(isset($this->$key)){
                $this -> $key = $value;
            }else{
                echo &#39;为“&#39;.$key.&#39;”赋值“&#39;.$value.&#39;”失败!<br>&#39;;
            }
        }
        public function getUrl(){
            echo $this -> url;
        }
    }
    $object          = new Website();
    $object -> name  = &#39;php中文网&#39;;
    $object -> url   = &#39;https://www.php.cn/&#39;;
    $object -> title = &#39;PHP教程&#39;;
    $object -> getUrl();
?>

실행 결과는 다음과 같습니다.

为“title”赋值“PHP教程”失败!
https://www.php.cn/

추천 학습: "PHP Video Tutorial"

위 내용은 PHP __set 매직 메소드를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.