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
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
public static $model
是你自己定义的吧?$model并没有赋值当然不能调用了,通常是这样写的。
class A {
protected static $model;
public static function getModelInstance() {
if (empty(static::$model)) static::$model = new YourClass();
return static::$model;
}
}
//call
echo A::getModelInstance()->method();
很凑巧,今天我也遇到这种问题了。排查问题后发现call_user_func_array([static::$model, $method], $arguments) 在这种写法里,当$method=__METHOD__时,而且是调用的父类方法,确实调用不到
因为__METHOD__是方法名全路径,即精确到子类命名空间,如:subclass_namespaceSubClass::methodName 。这种方式在不存在继承关系时,call_user_func_array没有问题
解决办法:$method只写方法名即可: $method =__FUNCTION__
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
2 回答776 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.3k 阅读
1 回答695 阅读✓ 已解决
谢邀
我很久木有用TP了 对TP不熟 我帮你邀请了我的一个朋友@白俊遥 他对TP很熟 希望他能解决你的问题