当前位置 博文首页 > 文章内容

    php call魔术方法的作用是什么

    作者:shunshunshun18 栏目:未分类 时间:2021-09-05 10:45:16

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    php “__call()”魔术方法在调用不存在或不可访问的方法时会被调用,其作用为:让程序继续执行下去,避免当调用的方法不存在或不可访问时,产生错误导致程序终止。

    本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

    在面向对象编程中,PHP 提供了一系列的魔术方法,这些魔术方法为编程提供了很多便利,在 PHP 中的作用是非常重要的。PHP 中的魔术方法通常以__(两个下划线)开始,并且不需要显式的调用而是在某种特定条件下自动调用的。

    其中,__call()或__callStatic()方法就是为了实现重载而设计的,下面给大家介绍一下__call方法。

    php __call魔术方法

    当调用类中一个不可访问或不存在的方法时,__call() 方法会被调用。该方法的语法格式如下:

    public function __call($name, $arguments){
        ... ... ;
    }

    其中,$name 为要调用的方法名称,$arguments 为传递给 $name 的参数所组成的数组。

    当调用的方法不存在时会自动调用 __call() 方法,程序会继续执行下去,从而可以避免当调用方法不存在时产生错误所导致的程序终止。

    【示例】下面使用简单的示例来演示一下 __call() 方法的使用。

    <?php
    header("Content-type:text/html;charset=utf-8");
    class Website{
        public function say(){
            echo 'Welcome IIS7站长之家博文!<br>';
        }
        public function __call($name, $arguments){
            echo '你所调用的方法:'.$name;
            if(!empty($arguments)){
                echo '【以及参数:';
                print_r($arguments);
                echo '】';
            }
            echo ' 不存在!<br>';
        }
    }
    $obj = new Website();
    $obj -> say();
    $obj -> url('https://www.php.cn/');
    $obj -> title();
    ?>

    运行结果如下:

    1.png

    推荐学习:《》