美文网首页
PHP 魔术方法__call和__callStatic

PHP 魔术方法__call和__callStatic

作者: 377b79b94683 | 来源:发表于2017-07-04 18:01 被阅读35次

PHP 5.3 后新增了 __call 与__callStatic 魔法方法。

用途:

__call:当要调用的方法不存在或权限不足时,会自动调用__call 方法。

__callStatic:当调用的静态方法不存在或权限不足时,会自动调用__callStatic方法。

示例:

__call($funcname, $arguments)

__callStatic($funcname, $arguments)

参数说明:

$funcname String 调用的方法名称。

$arguments Array 调用方法时所带的参数。

      在TP5里面,Db基类使用该方法在未继承Query操作类的情况下,手动实例Query类并调用其中方法完成操作。如:\think\Db::name('tableName'), 在Db类里并没有name这个静态方法,该方法存在于操作类Query.php里面且不是一个静态方法,而Db类也未继承该类。TP5在Db类中使用__callStatic方法重定向了这个方法,在__callStatic方法 里面实例化Query类并调用name方法完成操作。

相关文章

网友评论

      本文标题:PHP 魔术方法__call和__callStatic

      本文链接:https://www.haomeiwen.com/subject/dkpxhxtx.html