php 构造函数支持不同个数参数的方法

PHP 构造函数支持不同个数参数方法

原理:在__construct中使用 func_num_args 获取参数个数,再根据参数个数执行不同的调用。参数值使用func_get_arg() 方法获得。


demo:

  1. <?php  
  2. class demo{  
  3.   
  4.     private $_args;  
  5.   
  6.     public function __construct(){  
  7.         $args_num = func_num_args(); // 获取参数个数  
  8.   
  9.         // 判断参数个数与类型  
  10.         if($args_num==2){  
  11.             $this->_args = array(  
  12.                                 'id' => func_get_arg(0),  
  13.                                 'dname' => func_get_arg(1)  
  14.                             );  
  15.         }elseif($args_num==1 && is_array(func_get_arg(0))){  
  16.             $this->_args = array(  
  17.                                 'device'=>func_get_arg(0)  
  18.                             );  
  19.         }else{  
  20.             exit('func param not match');  
  21.         }      
  22.     }  
  23.   
  24.     public function show(){  
  25.         echo '<pre>';  
  26.         print_r($this->_args);  
  27.         echo '</pre>';  
  28.     }  
  29.   
  30. }  
  31.   
  32. // demo1  
  33. $id = 1;  
  34. $dname = 'fdipzone';  
  35. $obj = new demo($id$dname);  
  36. $obj->show();  
  37.   
  38. // demo2  
  39. $device = array('iOS','Android');  
  40. $obj = new demo($device);  
  41. $obj->show();  
  42. ?>  

demo执行后输出:
  1. Array  
  2. (  
  3.     [id] => 1  
  4.     [dname] => fdipzone  
  5. )  
  6. Array  
  7. (  
  8.     [device] => Array  
  9.         (  
  10.             [0] => iOS  
  11.             [1] => Android  
  12.         )  
  13.   

http://blog.csdn.net/fdipzone/article/details/21262989



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值