PHP 中__Call()和call_user_func_array()方法的使用方法

转自:PHP5与MySQL5web开发技术详解


<?php
    class MyClass1
    {
    	private $obj;
    	
    	function __construct($obj)
    	{
    		$this->obj =$obj; 
    	}
    	function __call($Method, $Args)
    	{
    		echo $Method."::".implode($Args, ',')."<br/>";
    		// 如果obj中有此方法,就 转调用obj中的方法
    		if (isset($this->obj) && method_exists($this->obj, $Method))
    		{
    			return call_user_func_array(array($this->obj, $Method), $Args);
    			// call_user_func_array("foobar", array("one", "two"));
    		}
    	}
    }
    
    class MyClass2
    {
    	private $Num = 0;
    	 
    	function Add($Num1, $Num2)
    	{
    		$this->Num = $Num1 + $Num2;
    		return $this->Num;
    	}
    }
    
    $obj2 = new MyClass2();
    $obj1 = new MyClass1($obj2);
    
    echo $obj1->Add(2, 3);
    
  
?>

运行的结果

Add::2,3
5



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值