PHP에서 __call() 및 __callStatic()을 사용하는 방법

小云云
풀어 주다: 2023-03-22 09:58:02
원래의
2074명이 탐색했습니다.

이 기사는 주로 PHP에서 __call() 및 __callStatic()을 사용하는 방법을 공유합니다. 도움이 되기를 바랍니다. 이 두 가지 방법의 사용에 대해서는 자세히 설명하지 않겠습니다. 예제 코드와 결과를 통해 누구나 두 가지 방법의 기능을 더 명확하게 이해할 수 있습니다.

1.__call() 메소드. 클래스에 선언되지 않은 메소드를 호출할 경우 메소드를 선언하는 대신 __call() 메소드를 호출할 수 있습니다. 메소드 이름과 배열을 매개변수로 허용합니다.

코드 예:

<?php  
class test{  
//魔术方法__call  
/* 
$method 获得方法名 
$arg 获得方法的参数集合 
*/  
public function __call($method,$arg){  
    echo &#39;你想调用我不存在的方法&#39;,$method,&#39;方法<br/>&#39;;  
    echo &#39;还传了一个参数<br/>&#39;;  
    echo print_r($arg),&#39;<br/>&#39;;  
  }   
$list=new test();  
$list->say(1,2,3);  
  
?>
로그인 후 복사

실행 결과:

존재하지 않는 메서드를 호출하려고 합니다. method
또한 매개변수를 전달했습니다
Array([0] => 1 [1] => 2 [2] => 3 )

2.__callStatic() 메소드. 이 메소드는 PHP5.3부터 등장했으며, 클래스에 존재하지 않는 메소드를 호출하기 위해 정적 메소드를 생성할 때 사용됩니다. __call() 메서드와 동일하며 메서드 이름과 배열을 매개변수로 받습니다.

코드 예:

<?php  
class test{  
//魔术方法__callStatic 
/* 
$method 获得方法名 
$arg 获得方法的参数集合 
*/  
//魔术方法__callStatic  
public static function __callStatic($method,$arg){  
  
    echo &#39;你想调用我不存在的&#39;,$method,&#39;静态方法<br/>&#39;;  
    echo &#39;还传了一个参数<br/>&#39;;  
    echo print_r($arg),&#39;<br/>&#39;;  
  }  
  
}  
test::cry(&#39;痛哭&#39;,&#39;鬼哭&#39;,&#39;号哭&#39;);  

?>
로그인 후 복사

실행 결과:
존재하지 않는 cry 정적 메소드를 호출하려고 합니다
또한 매개변수를 전달했습니다
Array([0] => Cry[1] => Ghost Cry [2] => Howl)

관련 추천:

PHP 예제 분석에서 __call() 메서드를 사용하고 오버로드하는 방법

php 매직 함수 __call() 사용 예제 분석_PHP 튜토리얼

php 매직 메소드 __get(), __set(), __call(), __callStatic() 및 정적 사용법에 대한 자세한 설명

위 내용은 PHP에서 __call() 및 __callStatic()을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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