php的__call()函数是一个神奇的函数。方法以下划线开头,PHP解释器会在运行到一定时间后自动查找并运行。当我们调用一个不可访问的成员方法时,就会调用__call魔术方法。不可访问的成员方法是指(1.成员方法不存在,2.成员方法是protected或者private的)我们是Hope,直接在类外调用不可访问的成员方法(private,protected)。案例说明name=$name;$这个->爱好=$爱好;}//输出对象的信息publicfunctionshowInfo(){echo'
thenameis'.$这个->名字;foreach($this->hobbyas$hobby){echo'
thehobbyis'.$爱好;}}//可以做算术,ProtectedprotectedfunctiongetSum($num1,$num2){return$num1+$num2;}//写这个__call魔术方法,__call魔术方法会接收两个参数/*@param$method_name为函数名@param$parameters为参数,类型为数组*/publicfunction__call($method_name,$parameters){//echo'
method_name='.$method_name;//echo'
$parameters
';//var_dump($parameters);//判断$this中是否存在$method_name函数,返回true,否则返回falseif(method_exists($this,$method_name)){return$this->$method_name($parameters[0],$parameters[1]);}else{return'没有你要调用的函数';}}}$monk=newMonk('济公',array('no1'=>'驾云','no2'=>'饮酒'));$monk->showInfo();//当我们直接调用protected方法时,会触发__call魔法方法echo'
Theresultis'.$和尚->getSum(100,200);以上就是php的__call函数属于哪一类的详细内容。希望对你有所帮助帮助阅读原文:PHP的__call函数属于什么解释?
