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三层结构(上) 简单三层结构

PHP三层结构(上) 简单三层结构

如代码1所示: 复制代码 代码如下: // 代码 1 // 外观层类 class LWordHomePage { // 添加留言 public function append($newL...

PHP获取文件后缀名的三个函数

选好一种记住,以后需要使用的时候就可以直接使用,或者来本站查看本文也是可以滴。 复制代码 代码如下: <?php //方法一: function extend_1($file_na...

学习php设计模式 php实现状态模式

学习php设计模式 php实现状态模式

一、意图 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类 状态模式变化的位置在于对象的状态 二、状态模式结构图   三、状态模式中主要角色 抽象状态...

PHP连接SQLServer2005的方法

PHP连接SQLServer2005的方法

1.修改php.ini将extension=php_mssql.dll的注释删除保存。 修改php.in将mssql.secure_connection = Off改为mssql.sec...

教大家制作简单的php日历

教大家制作简单的php日历

最近的一个项目中,需要将数据用日历方式显示,网上有很多的JS插件,后面为了自己能有更大的控制权,决定自己制作一个日历显示。如下图所示: 一、计算数据 1、new一个Calendar类...