> 백엔드 개발 > PHP 튜토리얼 > PHP의 __set() 메소드에 대한 자세한 설명

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

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

PHP에서는 두 개의 밑줄 __로 시작하는 메소드를 매직 메소드라고 합니다. 이러한 메소드는 PHP에서 중추적인 역할을 합니다.

그 중 __set()은 클래스의 멤버 변수를 설정할 때 호출됩니다.

__set() 함수: 🎜 #

__set( $property, $value )` 메서드는 개인 속성을 설정하는 데 사용됩니다. 정의되지 않은 속성에 값을 할당하면 이 메서드가 트리거됩니다. 전달되는 매개 변수는 설정된 속성 이름입니다. 값.

아래 데모 코드를 참조하세요:

<?php
class Person
{
    private $name;
    private $age;
    public function __construct($name="",  $age=25)
    {
        $this->name = $name;
        $this->age  = $age;
    }
    /**
     * 声明魔术方法需要两个参数,真接为私有属性赋值时自动调用,并可以屏蔽一些非法赋值
     * @param $property
     * @param $value
     */
    public function __set($property, $value) {
        if ($property=="age")
        {
            if ($value > 150 || $value < 0) {
                return;
            }
        }
        $this->$property = $value;
    }
    /**
     * 在类中声明说话的方法,将所有的私有属性说出
     */
    public function say(){
        echo "我叫".$this->name.",今年".$this->age."岁了";
    }
}
$Person=new Person("小明", 25); //注意,初始值将被下面所改变
//自动调用了__set()函数,将属性名name传给第一个参数,将属性值”李四”传给第二个参数
$Person->name = "小红";     //赋值成功。如果没有__set(),则出错。
//自动调用了__set()函数,将属性名age传给第一个参数,将属性值26传给第二个参数
$Person->age = 16; //赋值成功
$Person->age = 160; //160是一个非法值,赋值失效
$Person->say();  //输出:我叫小红,今年16岁了
로그인 후 복사

실행 결과:

我叫小红,今年16岁了
로그인 후 복사

관련 권장 사항: "

__get() in PHP 상세 방법설명

위 내용은 PHP의 __set() 메소드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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