PHP 魔术方法__call和__callStatic

2017-07-04  本文已影响35人  377b79b94683

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方法完成操作。

上一篇 下一篇

猜你喜欢

热点阅读