objekthantering och arrayer i php5?

Permalänk
Medlem

objekthantering och arrayer i php5?

Liten fråga om hur jag bäst lägger in flera skapade objekt i en array och sedan hämtar varje objekt för att använda en specifik funktion i dessa.

Har gjort något så här:

i huvudklassen finns
---------------------------------
public $fieldObject = array();

längre ned skapar jag sedan ett gäng objekt ur en annan klass, ex tre stycken
-----------------------------------------------------------
$obj = new FormField($fType,$type,$name,$size,$value);
array_push($fieldObject,$obj);
---------------------------------------------------
Dock får jag felet att $fieldObject inte är en array här

Avslutningsvis så ska jag senare använda en viss funktion, getField(), i varje objekt:
--------------------------------------------
for ($i= 0;$i<$this->nrOfFields;$i++)
{
$this->fieldObject[$i]->getField();
}
--------------------------------------------------

För tillfället osäker om detta funkar eller inte då första array_push är felaktig. Sedan kanske det är bättre med foreach här.

Visa signatur

AMD Ryzen 9 5900x| Asus ROG Crosshair VIII Dark Hero X570 | G-Skill 32GB DDR4 3600Mhz CL16 Trident | MSI Geforce RTX 3080 10GB Gaming X Trio | Phantek P600S | Creative Sound BlasterX AE-5 Plus | Corsair RM850X 850W | Samsung 980 Pro 1TB M.2 NVME | Kingston A2000 1TB M2. NVME | Corsair H150i Pro XT | Win 10 Home 64
LG 38GN950 | LG Oled 65C1, 65C7 och 55C9
Xbox Series X | Playstation 5 | PSVR 2 | Oculus Quest 2

Permalänk
Medlem

Istället för array_push($fieldObject,$obj); testa med $fieldObject[] = $obj;

Permalänk
Medlem

Såg nu i efterhand att jag glömde att ha med this-> i min push. Dock visade ju sig att push enbart går på variabler, så det du påpekade är ju det rätta, men la även till en clone $obj. I övrigt så gör man små slarvfel som man förbiser och inte ser även om man tittar rakt på dem

Visa signatur

AMD Ryzen 9 5900x| Asus ROG Crosshair VIII Dark Hero X570 | G-Skill 32GB DDR4 3600Mhz CL16 Trident | MSI Geforce RTX 3080 10GB Gaming X Trio | Phantek P600S | Creative Sound BlasterX AE-5 Plus | Corsair RM850X 850W | Samsung 980 Pro 1TB M.2 NVME | Kingston A2000 1TB M2. NVME | Corsair H150i Pro XT | Win 10 Home 64
LG 38GN950 | LG Oled 65C1, 65C7 och 55C9
Xbox Series X | Playstation 5 | PSVR 2 | Oculus Quest 2