PHP魔术方法之__call与__callStatic使用方法

yipeiwu_com6年前PHP代码库

核心代码

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

 }

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

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


$ha = new Human();

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

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

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

你想调用我不存在的方法t方法
还传了一个参数
Array ( [0] => 1 [1] => 2 [2] => 3 )

你想调用我不存在的方法say方法
还传了一个参数
Array ( [0] => a [1] => b [2] => c )

你想调用我不存在的run静态方法
还传了一个参数
Array ( [0] => d [1] => e [2] => f )

相关文章

php 无法加载mcrypt.dll的解决办法

1.php.ini里面查找extension=php_mcrypt.dll,去掉前面的分号”;” ,重启apache.无效(注意:在AppServ中php.ini在dinwos目录下)...

php strlen mb_strlen计算中英文混排字符串长度

比较strlen和mb_strlen 当字符全是英文字符的时候,两者是一样。这里主要比较一下,中英文混排的时候,两个计算结果。(测试时编码方式是UTF8) 复制代码 代码如下:<?...

PHP快速排序算法实现的原理及代码详解

PHP快速排序算法实现的原理及代码详解

算法原理 下列动图来自五分钟学算法,演示了快速排序算法的原理和步骤。 步骤: 从数组中选个基准值 将数组中大于基准值的放同一边、小于基准值的放另一边,基准值位于中间位置 递归的对分...

学习php设计模式 php实现原型模式(prototype)

学习php设计模式 php实现原型模式(prototype)

一、意图 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 二、原型模式结构图 三、原型模式中主要角色 抽象原型(Prototype)角色:声明一个克隆自身的接口 具体原...

基于PHP array数组的教程详解

定义数组数组array是一组有序的变量,其中每个变量被叫做一个元素。一、定义数组 可以用 array() 语言结构来新建一个数组。它接受一定数量用逗号分隔的 key => valu...