Home  >  Article  >  Backend Development  >  Detailed explanation of how to use PHP__call and __callStatic

Detailed explanation of how to use PHP__call and __callStatic

小云云
小云云Original
2018-02-03 10:06:251480browse

This article mainly introduces the __call and __callStatic methods of PHP magic methods. Friends in need can refer to them. I hope it can help you.

Core code


//魔术方法__call 
/* 
$method 获得方法名 
$arg 获得方法的参数集合 
*/
class Human {
 private function t(){

 }

 public function __call($method,$arg){
  echo &#39;你想调用我不存在的方法&#39;,$method,&#39;方法<br/>&#39;; 
  echo &#39;还传了一个参数<br/>&#39;; 
  echo print_r($arg),&#39;<br/>&#39;; 
 }

 public static function __callStatic($method,$arg){
  echo &#39;你想调用我不存在的&#39;,$method,&#39;静态方法<br/>&#39;; 
  echo &#39;还传了一个参数<br/>&#39;; 
  echo print_r($arg),&#39;<br/>&#39;; 
 }
}


$ha = new Human();

//example1
$ha->t(1,2,3);

echo &#39;<br>&#39;;
//example2
$ha->say(&#39;a&#39;,&#39;b&#39;,&#39;c&#39;);

echo &#39;<br>&#39;;
//example3
$ha::run(&#39;d&#39;,&#39;e&#39;,&#39;f&#39;);

You want to call my non-existent method t method
Also passed a parameter
Array ( [0] => 1 [1] => 2 [2] => 3 )

You want to call my non-existent method say method
Also passed a parameter
Array ( [0] => a [1] => b [2] => c )

You want to call my non-existent run static method
You also passed a parameter
Array ( [0] => d [1] => e [2] => f )

Related recommendations:

php’s magic method __get() , __set(), __call(), __callStatic() and static usage detailed explanation

Detailed explanation of the usage and difference between __call and __callStatic in php

php __call and __callStatic

The above is the detailed content of Detailed explanation of how to use PHP__call and __callStatic. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn