Hi,
Ich habe eine Klasse geschrieben, die die Eigenschaften eines Objekts verwaltet: eine externe Funktion, der eine Id mitgegeben wird, liest aus der Datenbank den entsprechenden Datensatz und schreibt die einzelnen Felder in ein Array.
Returned wird ein Objekt, dessen Eigenschaften aus dem Array ausgelesen werden:
function getEinObjekt($id_EinObjekt)
{
GLOBAL $db;
$queryString = "SELECT * FROM document WHERE id_EinObjekt = " . $id_EinObjekt;
$resArr = $db->getResultArray($queryString);
if (is_bool($resArr) && $resArr == false)
return false;
if (count($resArr) != 1)
return false;
$resArr = $resArr[0];
return new EinObjekt($resArr["id_EinObjekt"], $resArr["name"], $resArr["folder"], $resArr["keywords"], $resArr["objektType"], $resArr["owner"]);
}
Funktionsaufruf:
$einObjekt= getEinObjekt($id_EinObjekt);
Darauf kann man jetzt die Klassenfunktionen anwenden - z.B.
$var = $einObjekt->getName(); oder so.
Das geht hier auch problemlos.
Bei einer anderen Klasse, die genauso aufgebaut ist, geschieht etwas, das ich einfach nicht verstehe:
ich weise zu (es geht um Unterordner-Objekte, weil es mehrere sein können, ist das queryResult in einem Array $resArr):
$subFolder = getObjektSubFolder($folderContent[$i]['id_subFolder']);
Dann wird in einer for-schleife (Größe von $resArray) ausgelesen, weils mehrere sein können:
lese ich $subFolder jetzt als Array aus, liest er die Eigenschaften des Objekts richtig aus:
$subFolderName = $folderContent[$i]['name'];
So ist es ja irgendwie kein OOP...
lese ich $subfolder mit der Klassenfunktion aus:
$subFolderName = $subFolder->getFolderName();
sagt er, $subFolder wäre kein Objekt dieser Klasse. Die richtigen Eigenschaften sind also da (wenn ich's als Array auslese), aber trotzdem ist es kein Objekt dieser Klasse?
Mache ich irgendeinen Fehler? Bei der anderen Klasse geht es - und die ist im Prinzip genauso.
Erkennt jemand einen Fehler in diesem Wust?
Gruß, creed