>  기사  >  백엔드 개발  >  PHP의 매직 메소드란 무엇입니까? 일반적으로 사용되는 매직 메소드는 무엇입니까?

PHP의 매직 메소드란 무엇입니까? 일반적으로 사용되는 매직 메소드는 무엇입니까?

慕斯
慕斯원래의
2021-06-17 17:44:152745검색

이전 글에서는 "PHP에서 상속과 파생이 무엇인가요?"에 대해 소개했습니다. 상속을 어떻게 사용하나요? 》, 이 기사에서는 계속해서 PHP의 매직 메소드가 무엇인지 소개합니다. 일반적으로 사용되는 매직 메소드는 무엇입니까? 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

PHP의 매직 메소드란 무엇입니까? 일반적으로 사용되는 매직 메소드는 무엇입니까?

1. 매직 메소드란

특정 시간에 시스템이 자동으로 호출하는 메소드

2. 일반적으로 사용되는 매직 메소드:

_get

객체가 외부에서 개인적으로 액세스되는 경우 멤버 또는 보호된 속성이 있을 때 호출됩니다.

이 메소드에는 하나의 매개변수가 있습니다. 매개변수는 속성 이름입니다.

코드를 예로 들어보겠습니다.

먼저 새 파일을 생성하고 다음과 같이 작성합니다. 클래스 클래스를 만들고 이를 Attributes 클래스에 정의한 다음 객체를 생성합니다. 방금 정의한 클래스를 출력(echo)하면 오류가 발생합니다. 객체는 공용 속성에만 액세스할 수 있고 protected 및 속성에는 액세스할 수 없기 때문입니다.

<?php
class Person 
{
    public $name = &#39;林徽因&#39;;
    protected $pome = &#39;答案很长,我准备用一生的时间来回答,你准备要听了吗?&#39;;
    private $time = &#39;民国&#39; ;
}
$niu = new Person();
echo $niu->pome;
?>

코드 표시 결과:

PHP의 매직 메소드란 무엇입니까? 일반적으로 사용되는 매직 메소드는 무엇입니까?

위 코드를 실행하면 오류가 있음을 알 수 있습니다. 따라서 보호 및 개인 속성은 외부에서 액세스할 수 없습니다. 외부적으로 개체를 통해 보호 속성 또는 개인 속성에 액세스하려고 합니다. 개인 멤버 속성에 액세스하면 get 메서드가 자동으로 트리거됩니다.

    public function __get($name){
        echo $name;
    }

그런 다음 $name을 인쇄합니다.

코드는 결과를 표시합니다.

PHP의 매직 메소드란 무엇입니까? 일반적으로 사용되는 매직 메소드는 무엇입니까?

따라서 if 문을 사용하여 위 코드를 통해 판단할 수 있습니다.

 if ($name == &#39;pome&#39;){
            return $this->pome;

코드는 결과를 표시합니다.

PHP의 매직 메소드란 무엇입니까? 일반적으로 사용되는 매직 메소드는 무엇입니까?

The 위에서 말한 내용입니다. get 사용법

--set

트리거 타이밍: 객체가 외부에서 비공개 또는 보호된 멤버 속성 값을 설정할 때 호출됩니다.

이 메소드에는 두 개의 매개변수가 있습니다.

매개변수 1: 멤버 속성 이름!

매개변수 2: 설정할 값

코드를 예로 들어보겠습니다.

모든 매직 메소드는 위와 같이 클래스에 속성을 정의한 다음 객체를 생성합니다. 속성을 설정합니다. 하나는 속성 이름이고 다른 하나는 속성 값입니다.

public function __set($name,$value)
    {
        var_dump($name,$value);
    }
}
$niu = new Person();
//echo $niu->pome;
$niu->pome = &#39;答案很长,我准备用一生的时间来回答,你准备要听了吗?&#39;;

코드는 결과를 표시합니다.

PHP의 매직 메소드란 무엇입니까? 일반적으로 사용되는 매직 메소드는 무엇입니까?

추가: (설명: 자세한 내용은 다음번에)

외부적으로 사용할 수 있음 unset을 통해 객체의 공용 속성을 삭제

_unset

트리거 타이밍: 프라이빗 또는 보호된 멤버 속성이 외부에서 삭제될 때 객체가 호출됩니다.

이 메서드에는 하나가 있습니다. 매개변수: 매개변수는 비공개 멤버 속성 이름입니다

_isset

트리거 시간: 개체가 비공개 또는 보호된 멤버 속성을 외부에서 결정할 때 호출됩니다.

이 메소드에는 하나의 매개변수가 있습니다. 매개변수는 비공개 멤버 속성 이름

입니다. construct: 생성자 메서드

트리거 시간: 생성 시 객체가

destruct: 소멸자 메서드

toString(이해)

트리거 시간: 에코 - 객체가 있을 때 트리거됨

함수가 필요하면 반환 - 문자열

__debugInfo(이해)

트리거 타이밍: var_dump - 객체가 반환될 때 트리거

이 함수가 반환해야 하는 경우 - 배열

권장 학습: php 비디오 자습서

위 내용은 PHP의 매직 메소드란 무엇입니까? 일반적으로 사용되는 매직 메소드는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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