dedlfix: Frage zu PHP-Variablen

Beitrag lesen

Hi!

ich habe eine (für die meisten wahrscheinlich einfache) Frage:

Nein, das ist schon ein wenig kniffliger.

$i = 11;

$tmp = "$row->s_";    // 1.
$tmp.=$i;
echo $tmp;

echo $row->s_11;     // 2.


>   
> Warum ist das Ergebnis nicht identisch?  
  
Betreibe Debugging! Stell das error\_reporting auf E\_ALL (und display\_errors auf on) - das sollte man beim Entwicklen immer haben. Du bekommst dann eine ansonsten nicht angezeigt Notice wegen "Undefined property ... s\_". Beachte die Unterschiede bei der Variablennamenbehandlung innerhalb von ""- und ''-Strings. Wenn du mit var\_dump($tmp) das Ergebnis der ersten Zeile überprüfen würdest, könntest du sehen, dass in $tmp nur ein Leerstring abgelegt ist. Dem den Inhalt von $i hinzuzufügen ergibt "11".  
  

> Bzw. wie schaffe ich es, einen dynamischen Zugriff auf meine Datenbank zu erstellen?  
  
Mit so genannten variablen Variablen bekommst du das auch mit Objekten hin.  
  
  $tmp = 's\_' . $i;  
  echo $row->$tmp; // beachte das zweite $  
  
Alternativ ginge es wie folgt, wenn du nicht Objekte sondern Arrays fetchen würdest.  
  
  $key = 's\_' . $i;  
  echo $row[$key];  
  
oder  
  
  echo $row['s\_' . $i];  
  
  
Lo!