Property (array) van parent aanpassen
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
{
$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,,.
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.