Reputation: 93
how to extend array in parent class in PHP?
I have something like this
class ParentClass {
$this->player = array(
'class' => array(
'basic' => array(
'name' => $data['name'],
'image' => $data['img']
)
)
);
}
how to extend $this->player array without erasing data in parent class with this data
class ChildClass extends ParentClass {
$this->player => array(
'class' => array(
'loadout' => array(
'primary' => array(
'name' => $data1['name'],
'type' => $data1['type']
)
)
)
);
}
so the output will be
(
'class' => array(
'basic' => array(
'name' => $data['name'],
'image' => $data['img']
),
'loadout' => array(
'primary' => array(
'name' => $data1['name'],
'type' => $data1['type']
)
)
)
)
I have tried this
class ParentClass {
public $player;
public function __construct($class) {
$this->player = array(
'class' => array(
'basic' => array(
'name' => $data['name'],
'image' => $data['img']
)
)
);
}
}
class ChildClass extends ParentClass {
public function __construct($class) {
parent::__construct($class);
$this->player['class'] = array(
'loadout' => array(
'primary' => array(
'name' => $data1['name'],
'type' => $data1['type']
)
)
);
}
public function getData() {
return $this->player;
}
}
but it only prints
(
'class' => array(
'loadout' => array(
'primary' => array(
'name' => $data1['name'],
'type' => $data1['type']
)
)
)
)
Upvotes: 1
Views: 1086
Reputation: 14875
Your construct should look like this:
public function __construct($class) {
parent::__construct($class);
$this->player['class']['loadout'] =
array(
'primary' => array(
'name' => $data1['name'],
'type' => $data1['type']
)
);
}
Your code before overrode class
with a new array. This code sets loadout
of the array class
to the new array.
Upvotes: 1