hi,你好!欢迎访问本站!登录
本站由简数采集腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - PHP问题 - 正文 请牢记本站网址www.sosophp.cn

php的__call函数是属于哪一类【php题目】

2019-11-26PHP问题搜搜PHP网51°c
A+ A-
php的__call() 函数是一个把戏函数,所谓PHP的把戏函数,简朴的说就是在PHP中具有特定称号——都是用两个下划线开首的,而且PHP诠释器会在运转到某一个机遇的时刻自动查找并运转的要领。

当我们调了一个不可以接见的成员要领时,__call把戏要领就会被挪用.

不可以接见的成员要领的是指(1. 该成员要领不存在, 2. 成员要领是protected或许 private) (引荐进修:PHP视频教程)

我们就是愿望,在类的外部直接挪用不可接见的成员要领(private , protected).

案例申明

<?php
    header('content-type:text/html;charset=utf-8');
    //__call把戏要领

     class Monk{
        public $name;
        protected $hobby;

        public function __construct($name, $hobby){
            $this->name = $name;
            $this->hobby = $hobby;
        }
        
        //输出该对象的信息
        public function showInfo(){
            
            echo '<br> 名字是 ' . $this->name;
            foreach($this->hobby as $hobby){
                echo '<br> 兴趣有 ' . $hobby;
            }
        }

        //会做算术题, 庇护的
        protected function getSum($num1, $num2){
            
            return $num1 + $num2;
        }

        //编写这个__call把戏要领, __call 把戏要领会接收到两个参数
        /*
            @param $method_name 就是函数名
            @param $parameters 就是参数,范例是array
        */
        public function __call($method_name, $parameters){
            
//            echo '<br> method_name = ' . $method_name;
//            echo '<br> $parameters <br>';
//            var_dump($parameters);
            
            //推断 $this 中是不是有  $method_name 函数,有就返回true,不然返回false
            if(method_exists($this, $method_name)){

                return $this->$method_name($parameters[0], $parameters[1]);
            }else{
                return '没有你要挪用的函数';
            }
            
        }
     }

     $monk = new Monk('济公', array('no1'=>'腾云跨风', 'no2'=>'饮酒'));

     $monk->showInfo();

     //当我们直接挪用 protected 要领时,就会触发 __call 把戏要领
     echo '<br> 结果是' . $monk->getSum(100, 200);

以上就是php的__call函数是属于哪一类的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
php的__call函数是属于哪一类【php题目】

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签: