Hallo,
Warum eigentlich nicht? Ich finde das irgendwie unlogisch. Aber egal - dieses Problem hatte ich gelöst, indem die betroffene Funktion kein Array, sondern ein weiteres Objekt zurückliefert, welches das Array enthält.
Es ist kein Problem, ein Array zurückzugeben, nur darfst du nicht im selben Atemzug auf seine Elemente zugreifen.
Ja, aber es ist doch unpraktisch, wenn man z.B. per getElementsByTagName() nur mal schnell auf ein Element zugreifen will.
Naja, das Problem hatte ich dann eben so gelöst:
class HTMLElementArray{
var resArray;
function item($Nummer){
return resArray[$Nummer];
}
}
function getElementsByTagName(){
//Elemente suchen und in $result speichern
$retObj = new HTMLElementArray;
$retObj->resArray = $result;
return $resObj;
}
//z.B.
$document->getElementsByTagName("div")->item(0)->…
Damit konnte ich dann per item(Nummer) statt [Nummer] in einem Befehl auf die Rückgabe zugreifen.
Wenn du nur das eine Element haben willst, dann gib doch gleich nur dieses zurück. Wenn du alle haben willst, musst du das komplette Array erst in einer Variable ablegen, bevor du auf die Elemente zugreifen kannst.
Stimmt auch wieder. Das wäre zumindest einen optionalen Parameter wert.
Aber wie dem auch sei - dieses Problem habe ich ja mehr oder weniger gelöst. Schwieriger dürfte die andere Sache zu umgehen sein.
mfg. Daniel