关于继承后重写方法参数的问题 [ 2.0 版本 ]
我在做RBAC功能的时候发现YII自带的不能满足我需要的功能;
于是我就自己写一个类集成YII的RBAC类
class DbManager extends \yii\rbac\DbManager{}
然后开重写他原有的方法比如:
protected function getDirectPermissionsByUser($userId)
他默认是一个参数
我则改写成了三个参数
protected function getDirectPermissionsByUser($userId, $where, $arr)
加了两个参数结果就报错了
PHP Strict Warning – yii\base\ErrorException
Declaration of app\components\rbac\DbManager::getDirectPermissionsByUser() should be compatible with yii\rbac\DbManager::getDirectPermissionsByUser($userId)
如果不加后两个参数($where, $arr)就不报错,请问是那里的问题呢,
是不是只能原方法就几参数 重写也就只能传几个参数呢?
xjcallen 补充于 2017-06-18 12:17
protected 这个类型的方法必须指定默认值吗?
我给 $where $arr 加了一个默认值就不报错了!
共 3 个回答
-
johnny1991 回答于 2017-06-18 23:21 举报
重写是不可以改变参数个数的,如果参数个数不一致的话,只能另外写一个方法了
-
-
xjcallen 东莞
注册时间:2017-01-10
最后登录:2022-06-30
在线时长:6小时36分
最后登录:2022-06-30
在线时长:6小时36分
- 粉丝0
- 金钱175
- 威望0
- 积分235