목차
일반적인 매직 메소드
속성 관련
메서드 관련
종합적인 예
백엔드 개발 PHP 튜토리얼 PHP 객체지향 매직 메소드

PHP 객체지향 매직 메소드

Jun 06, 2018 am 09:57 AM
PHP 객체지향 마법의 방법

이 글은 주로 PHP의 객체지향 매직 메소드를 소개하는데, 이는 특정 참조 가치가 있습니다. 이제는 모든 사람과 공유합니다. 도움이 필요한 친구들은 이를 참조할 수 있습니다.

일반적인 매직 메소드

속성 관련

__set($property, $value)     给不可访问的属性赋值

__get($propertyName)         调用不可访问的属性

__isset($content)    
对不可访问的属性使用empty()、isset()时触发

__unset($content)     
对不可访问的属性使用unset()时触发
로그인 후 복사

메서드 관련

__call(string $function_name, array $arguments)    
调用不可访问的普通方法
$function_name  被调用的方法名
$arguments      被调用方法的多个参数


__callStatic(string $function_name, array $arguments)
调用不可访问的静态方法
로그인 후 복사

종합적인 예

<?php

class Example
{
    // 可访问的属性
    public $price = 111;

    //不可访问的属性
    private $secret = &#39;我是不可访问的属性&#39;;
    private $age = 23;

    //不可访问的普通方法
    private function donTell()
    {
        echo &#39;不能说的秘密&#39;;
    }

    //不可访问的静态方法
    private static function super()
    {
        echo &#39;我是不可访问的静态方法&#39;;
    }

    //魔术方法
    public function __set($property, $value)
    {
        echo &#39;给不可访问的属性赋值,您要设置的属性是&#39;.$property.&#39;,值是&#39;.$value;
        $this -> $property = $value;
    }

    public function __get($propertyName)
    {
        echo &#39;调用私有属性&#39;.$propertyName.&#39;,它的属性值是&#39;.$this -> $propertyName;
    }

    public function __isset($content)
    {
        echo &#39;你在对不可访问的属性进行empty()、isset()操作&#39;;
        isset($this->$content);
    }

    public function __unset($content)
    {
        echo &#39;你在对不可访问的属性进行unset()操作&#39;;
        isset($this->$content);
    }


    public function __call($function_name,$args)
    {
        echo &#39;你在调用不可访问的普通方法&#39;;
        echo &#39;方法名是&#39;.$function_name;
        var_dump($args);
    }

    public static function __callStatic($function_name,$args)
    {
        echo &#39;调用不可访问的静态方法&#39;;
        echo &#39;方法名是&#39;.$function_name;
    }

}


//实例化对象
$e1 = new Example();


/******* 触发各种魔术方法 ***********/

// 测试__set方法
$e1 -> secret = &#39;我是秘密&#39;;
echo &#39;<hr/>&#39;;

// 测试__get方法
$e1 -> age;
echo &#39;<hr/>&#39;;

// 测试__isset()方法
echo isset($e1 -> age);
echo &#39;<hr/>&#39;;

// 测试__unset方法
unset($e1 -> age);
echo &#39;<hr/>&#39;;

// 测试__call方法
$e1 -> donTell([1,2,3]);
echo &#39;<hr/>&#39;;

// 测试__callStatic方法
$e1 -> super();



?>
로그인 후 복사

관련 권장 사항:

php 객체 지향 정적 메서드, 속성 및 상수

php 객체 지향 생성자 및 소멸자

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

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Python 메타프로그래밍 이해하기: 기초부터 고급 패러다임까지 Python 메타프로그래밍 이해하기: 기초부터 고급 패러다임까지 Feb 19, 2024 pm 03:30 PM

Python 메타프로그래밍 기본 Python 메타프로그래밍은 Python 코드를 동적으로 조작하는 기능으로 Python을 매우 강력한 언어로 만듭니다. 메타프로그래밍은 다음과 같은 방식으로 구현될 수 있습니다. 클래스 데코레이터: 클래스 데코레이터는 클래스 정의를 수정하는 데코레이터입니다. 클래스의 속성과 메서드를 추가하거나 수정하는 데 사용할 수 있으며 클래스의 인스턴스화 프로세스를 제어하는 ​​데에도 사용할 수 있습니다. defadd_method_to_class(cls):defnew_method(self):print("Thisisanewmethod")setattr(cls,"new_method",new_method)returncls@a

PHP의 객체지향 캡슐화에 대한 심층적인 설명 PHP의 객체지향 캡슐화에 대한 심층적인 설명 Aug 11, 2023 am 11:00 AM

PHP 객체지향 캡슐화에 대한 심층적 해석 캡슐화는 객체지향 프로그래밍의 세 가지 주요 특징 중 하나입니다. 이는 클래스의 데이터와 데이터에 대한 작업을 캡슐화하고, 외부 프로그램에서 특정 구현 세부정보를 숨기고, 외부 인터페이스를 제공하는 것을 의미합니다. PHP에서 캡슐화 개념은 속성 및 메서드의 접근성을 제어하기 위해 액세스 한정자(공개, 보호, 비공개)를 사용하여 구현됩니다. 먼저 액세스 한정자의 역할을 살펴보겠습니다. public(public): 공용 속성과 메서드는

PHP 매직 메소드의 실행 순서를 따르는 방법은 무엇입니까? PHP 매직 메소드의 실행 순서를 따르는 방법은 무엇입니까? Apr 17, 2024 pm 09:33 PM

PHP 매직 메소드의 실행 순서는 다음 규칙을 따릅니다. 우선 순위가 높은 매직 메소드가 먼저 실행됩니다. 하위 클래스와 상위 클래스가 모두 동일한 이름의 매직 메서드를 정의하는 경우 하위 클래스의 매직 메서드가 먼저 실행됩니다. 클래스가 동일한 이름을 가진 일반 메소드와 매직 메소드를 모두 정의하는 경우 일반 메소드가 먼저 실행됩니다.

PHP 객체지향 단순 팩토리 패턴을 통해 객체 버전 제어 및 관리를 구현하는 방법 PHP 객체지향 단순 팩토리 패턴을 통해 객체 버전 제어 및 관리를 구현하는 방법 Sep 06, 2023 pm 02:39 PM

PHP 객체지향 단순 팩토리 모델을 통해 객체 버전 제어 및 관리를 구현하는 방법 크고 복잡한 PHP 프로젝트를 개발할 때 버전 제어 및 관리는 매우 중요합니다. 적절한 디자인 패턴을 통해 객체의 생성과 사용을 더 잘 관리하고 제어할 수 있으므로 코드의 유지 관리성과 확장성이 향상됩니다. 이 기사에서는 PHP 객체 지향 단순 팩토리 패턴을 사용하여 객체 버전 제어 및 관리를 구현하는 방법을 소개합니다. 단순 팩토리 패턴은 팩토리 클래스를 통해 지정된 객체를 인스턴스화하는 클래스를 생성하기 위한 디자인 패턴입니다.

매직 메소드란 무엇입니까? Laravel에서 사용하는 방법 매직 메소드란 무엇입니까? Laravel에서 사용하는 방법 Sep 26, 2022 pm 08:21 PM

매직 메소드란 무엇입니까? 라라벨에서는 어떻게 사용하나요? 다음 글에서는 Laravel에서 PHP 매직 메소드를 적용하는 방법을 소개하겠습니다. 도움이 되길 바랍니다.

PHP 개발: 리플렉션 및 매직 메서드를 사용하여 자동 코드 생성 및 동적 호출 달성 PHP 개발: 리플렉션 및 매직 메서드를 사용하여 자동 코드 생성 및 동적 호출 달성 Jun 15, 2023 pm 04:16 PM

PHP 개발에서 리플렉션과 매직 메서드는 일반적으로 사용되는 두 가지 기술입니다. 자동으로 코드를 생성하거나 특정 함수를 동적으로 호출해야 할 때 리플렉션 및 매직 메서드를 사용하면 코드를 더욱 유연하고 효율적으로 만들 수 있습니다. 이 기사에서는 리플렉션 및 매직 메서드를 사용하여 자동 코드 생성 및 동적 호출을 달성하는 방법을 살펴보겠습니다. Reflection은 PHP에서 제공하는 강력한 도구로, 프로그램이 실행될 때 클래스, 메서드, 속성과 같은 정보를 얻는 데 도움이 됩니다. 리플렉션을 통해 클래스나 객체의 메서드, 속성, 주석과 같은 정보를 동적으로 얻을 수 있습니다.

PHP 함수를 위한 매직 메소드 PHP 함수를 위한 매직 메소드 May 19, 2023 am 08:06 AM

PHP는 웹 개발에 널리 사용되는 C 언어를 기반으로 개발된 서버사이드 스크립팅 언어입니다. 함수는 프로그램에서 가장 기본적이고 일반적으로 사용되는 구성 요소 중 하나입니다. PHP는 또한 개발자가 함수를 더 잘 활용하는 데 도움이 되는 함수와 관련된 많은 매직 메서드를 제공합니다. 이번 글에서는 PHP 함수의 매직 메소드와 사용법을 소개하겠습니다. __construct()__construct()는 PHP에서 가장 일반적으로 사용되는 매직 메소드 중 하나이며 초기화를 위한 객체를 생성할 때 자동으로 호출됩니다.

16가지 PHP 매직 메소드를 안내합니다. 16가지 PHP 매직 메소드를 안내합니다. May 16, 2022 pm 08:45 PM

매직 메소드란 무엇인가요? 이 글은 PHP 개발자가 꼭 알아야 할 16가지 매직 메소드를 소개합니다. 여러분에게 도움이 되기를 바랍니다.

See all articles