Hallo zusammen,
ich habe mich jetzt seit ein paar Stunden damit herumgeschlagen und gebe bald auf.
Ich habe eine Funktion test, die aus einer Datenbank ein paar Felder holt. Das klappt. Nun möchte ich auf einzelne Felder zugreifen, je nach Bedarf.
Dazu übergebe ich den Namen des Feldes als String an die Funktion.
Mit dem übergebenen Namen kann ich aber leider nicht auf das Feld zugreifen (siehe rote Zeilen), wenn ich nun jedoch den identischen Feldnamen an eine lokale Variable las String übergebe und damit aufrufe, klappt das (grüne Zeilen), aber warum? Dieses Verhalten ralle ich nicht wirklich.
Es liegt auch nicht daran, das fieldName vllt. leer ist. Im Code ist zu sehen, ich gebe es aus und da steht definitiv "visit" drin.
Ich bin ratos, wer kann mir helfen?
Also in C++ hätte ich ja jetzt gesagt, geht so nicht weil early and late binding, aber in PHP?
Die Daten liege wie folgt in $row an:
ich habe mich jetzt seit ein paar Stunden damit herumgeschlagen und gebe bald auf.
Ich habe eine Funktion test, die aus einer Datenbank ein paar Felder holt. Das klappt. Nun möchte ich auf einzelne Felder zugreifen, je nach Bedarf.
Dazu übergebe ich den Namen des Feldes als String an die Funktion.
Mit dem übergebenen Namen kann ich aber leider nicht auf das Feld zugreifen (siehe rote Zeilen), wenn ich nun jedoch den identischen Feldnamen an eine lokale Variable las String übergebe und damit aufrufe, klappt das (grüne Zeilen), aber warum? Dieses Verhalten ralle ich nicht wirklich.
Es liegt auch nicht daran, das fieldName vllt. leer ist. Im Code ist zu sehen, ich gebe es aus und da steht definitiv "visit" drin.
Ich bin ratos, wer kann mir helfen?
Code:
public function test( $fieldName ) { global $my; $database = &JFactory::getDBO(); $uid = $user->id; // Parameter des Benutzers holen $query = 'SELECT * FROM #__tables where user_id = '.$uid; $database->setQuery( $query ); $rows = $database->LoadObjectList(); foreach( $array as $row ) { // folgendes funktioniert [COLOR=SeaGreen] $str = "visit"; echo( $row->{$str} ); [/COLOR] [COLOR=Red] // folgendes funktioniert nicht mehr selbst wenn in fieldName "visit" steht [/COLOR][COLOR=Green] echo( $fieldName ); // ist [B]NICHT[/B] leer, enthält "visit"! [/COLOR] [COLOR=Red] echo( $row->{$fieldName} ); [/COLOR] } }
Die Daten liege wie folgt in $row an:
Code:
stdClass Object ( [id] => 64 [visit] => 1 [privvisitors] => Freunde [privguestbook] => Alle )
Kommentar