call_user_func_array 调用不到父类的方法
asklogic extends baselogic
asklogic 有个属性 static::$model
是个askmodel对象
askmodel extends basemodel
但是static::$model调用不了 basemodel里的方法
还有。。使用这种方法在__call里调用的
$data = call_user_func_array([static::$model, $method], $arguments);
求解
语言php
框架tp
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
谢邀
我很久木有用TP了 对TP不熟 我帮你邀请了我的一个朋友@白俊遥 他对TP很熟 希望他能解决你的问题
public static $model
是你自己定义的吧?$model并没有赋值当然不能调用了,通常是这样写的。很凑巧,今天我也遇到这种问题了。排查问题后发现call_user_func_array([static::$model, $method], $arguments) 在这种写法里,当$method=__METHOD__时,而且是调用的父类方法,确实调用不到
因为__METHOD__是方法名全路径,即精确到子类命名空间,如:subclass_namespaceSubClass::methodName 。这种方式在不存在继承关系时,call_user_func_array没有问题
解决办法:$method只写方法名即可: $method =__FUNCTION__