php深入学习二——魔术方法以及__call的调用

本文详细介绍了PHP的魔术方法,特别是__call方法的调用场景、功能和实际应用。当尝试调用不存在的成员方法时,PHP解释器会自动触发__call,并将方法名和参数传递给该方法。同时,文章强调了实现__call时需注意的参数数量,以避免运行错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要介绍php的魔术方法、__call这个魔术方法的调用、功能、实际应用以及注意事项。编写时,默认你已经对面向对象编程和php的面向对象编程有基本了解。

一、什么是魔术方法?

魔术方法是php中对一类方法的统称,这些方法可以在任何类中被实现。他们通常可以完成一些特殊的无法纯粹依靠自己编程实现的功能。他们通常以双下划线"__"作为名称开头。也因此,你要注意自定义的方法应该避免使用双下划线"__"开头。


二、什么是__call方法?

它是一种魔术变量,因此它可以在任何类中被实现,如果它被实现了,将由后台php解释器在运行过程中调用。

三、什么情况下会调用__call方法及其功能?

当你调用的方法不存在的时候,会解释器会调用__call方法,如下:

1.当成员方法存在的时候

<?php

/**
 * Created by PhpStorm.
 * User: funco
 * Date: 17-6-11
 * Time: 下午1:01
 */
class Test
{
    public function showInfo() {
        echo "run show Info";
    }

    public function __call($name, $args) {
        echo "run __call";
    }
}

$test = new Test();
$test->showInfo();

运行结果如下:

run show Info

2.当成员方法不存在的时候

<?php

/**
 * Created by PhpStorm.
 * User: fun
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值