Property (array) van parent aanpassen
Beste,
Ik heb een property (array) die ik in de parent class aanmaak, deze wil ik kunnen aanpassen in mijn child class.
Dan heb ik een class AddTextField waarmee ik de functie editProperty aanroep. Deze zou dus een item aan de protected function $_items moeten toevoegen, maar dat werkt niet :(
Het aanpassen van een normale propery (niet een array dus) werkt wel?
Ik heb een property (array) die ik in de parent class aanmaak, deze wil ik kunnen aanpassen in mijn child class.
Code (php)
Dan heb ik een class AddTextField waarmee ik de functie editProperty aanroep. Deze zou dus een item aan de protected function $_items moeten toevoegen, maar dat werkt niet :(
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
class AddTextField extends Form
{
function __construct($label, $type, $name, $value = '', $id = '')
{
if ($id == '')
{
$id = 'form'.$name;
}
$arrName = '_items['.$this->getArrayNr().']["form_tag"]["'.$name.'"]';
$this->editProperty($arrName, '<input type="'.$type.'" name="'.$name.'" value="'.$value.'" id="'.$id.'" />');
}
}
?>
class AddTextField extends Form
{
function __construct($label, $type, $name, $value = '', $id = '')
{
if ($id == '')
{
$id = 'form'.$name;
}
$arrName = '_items['.$this->getArrayNr().']["form_tag"]["'.$name.'"]';
$this->editProperty($arrName, '<input type="'.$type.'" name="'.$name.'" value="'.$value.'" id="'.$id.'" />');
}
}
?>
Het aanpassen van een normale propery (niet een array dus) werkt wel?
Gewijzigd op 03/04/2012 00:07:33 door Joost van der Meijden
public function editProperty($name, $value)
{
$this->_items[$name] = $value;
}
Toevoeging op 03/04/2012 01:24:54:
Oh, ik zie het al... Dat gaat niet werken. Je kan niet op deze manier waarden aanpassen.
{
$this->_items[$name] = $value;
}
Toevoeging op 03/04/2012 01:24:54:
Oh, ik zie het al... Dat gaat niet werken. Je kan niet op deze manier waarden aanpassen.
Ik snap niet waarom ik wel een normale property (geen array) kan aanpassen, maar niet aan een array iets toevoegen..het maakt niet uit oftie op public of protected staat,,.
Omdat $this->_items['foo'] iets anders is als $this->'_items['foo']' (hetgeen jij nu probeert).
Wat netter is om een eigen setItems method te maken:
Tevens is AddTextField een doe ding en dus een method en geen eigen klasse.
Wat netter is om een eigen setItems method te maken:
Code (php)
Tevens is AddTextField een doe ding en dus een method en geen eigen klasse.




