本文主要介绍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