>백엔드 개발 >PHP 튜토리얼 >매직 메소드 __call() 인스턴스에 대한 자세한 설명(php 고급 객체 지향 튜토리얼)

매직 메소드 __call() 인스턴스에 대한 자세한 설명(php 고급 객체 지향 튜토리얼)

巴扎黑
巴扎黑원래의
2017-04-18 18:16:532184검색

__call() 매직 메소드란 무엇인가요?

__call은 매직 메서드 중 하나입니다. 프로그램이 현재 클래스에서 선언되지 않았거나 호출 권한이 없는 메서드를 호출하는 경우 __call 메서드가 호출됩니다. __call() 메소드에는 메소드 이름과 메소드 매개변수라는 두 개의 매개변수가 포함되어 있습니다. 그 중 메소드 파라미터는 배열 형태로 존재합니다.

모두의 이해를 돕기 위해 간단한 예를 들어 보겠습니다.

<?php
header("content-type:text/html;charset=utf-8");
class Sport{
public function run(){
echo &#39;方法存在直接调用我&#39;;
}
function __call($name, $arguments)
{
echo &#39;方法不存在调用我&#39;;
echo &#39;<br/>&#39;;
echo &#39;方法名为:&#39;. $name;
echo &#39;<br/>&#39;;
echo &#39;参数为:<pre class="brush:php;toolbar:false">&#39;;
var_dump($arguments);
}
}
$sport = new Sport();
$sport ->run();
echo &#39;<br/>&#39;;
$sport ->football(&#39;贝克汉姆&#39;,30);

클래스를 생성하고 클래스에 실행 메서드와 매직 메서드 __call()을 만듭니다. 다음으로 $sport 객체를 인스턴스화하고 두 가지 메서드를 호출합니다. 하나는 클래스에 존재하는 run() 메서드이고 다른 하나는 존재하지 않는 football() 메서드입니다. 코드를 실행하여 결과를 확인할 수 있습니다.

위 내용은 매직 메소드 __call() 인스턴스에 대한 자세한 설명(php 고급 객체 지향 튜토리얼)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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