扩展类以使用子私有变量

时间:2019-04-07 08:03:07

标签: php

我在供应商文件夹中有一个包含数组的类

private $mids = [
    'a' =>'b',
    'c' => 'd'
];
private $config = [
    'sid' => null,
    'aid' => null,
];

和用于设置私有$ config的构造函数

function __construct($config){
    foreach ($config as $key => $value) {
        if (array_key_exists($key, $this->config)) {
            $this->config[$key] = $value;
        }
    }
}

我想用新的键/值'x'=>'y'更新$ mid,所以我扩展了类并复制了父构造函数 子构造函数。

但是当我尝试调用在父级中定义的函数时,出现未定义$ this-> config($ key)的错误。 因此该函数使用的是父$ config属性而不是子元素。

我在做什么错了?

或者最好的方法是代替编辑供应商源代码

1 个答案:

答案 0 :(得分:0)

如果要在子类中使用变量,请将其保护为私有变量,而不是私有变量。

protected $mids = [
'a' =>'b',
'c' => 'd'
 ];
protected $config = [
  'sid' => null,
  'aid' => null,
];