色粉盒撒娇 发表于 2015-8-26 14:57:38

php用魔术方法__call实现类函数重载

        因为php是弱类型语言,不喜欢c++通过改变函数返回相同的值键入的参数的数目和功能将过载!但在需求函数的实际发展可能过载。开发需求,我们能够通过魔术方法__call()来实现函数重载。
  class Templates {
<span style=&quot;white-space:pre&quot;></span>function __call($fun,$argv){
<span style=&quot;white-space:pre&quot;></span>if($fun==&quot;assign&quot;){
<span style=&quot;white-space:pre&quot;></span>if(count($argv)==1){
<span style=&quot;white-space:pre&quot;></span>$this->assign1($argv);
<span style=&quot;white-space:pre&quot;></span>}
elseif(count($argv)==2){
$this->assign2($argv,$argv);
}
}
}
//assign函数接受參数
function assign2($key,$value){
if(isset($key)&&!empty($value)){
$this->val[&quot;$key&quot;]=$value;
}else{
exit(&quot;ERROR:请设置变量&quot;);
}
}
//重载assign函数接受数组
function assign1($array){
if(!empty($array)){
foreach($array as $key => $value){
$this->val[&quot;$key&quot;]=$value;
}
}else{
exit(&quot;ERROR:请设置数组&quot;);
}
}
}


  


         
版权声明:本文博客原创文章,博客,未经同意,不得转载。
  
页: [1]
查看完整版本: php用魔术方法__call实现类函数重载