echo $begrüßung;
$varbez = 'bild'.$y;
$$varbez[$x] = $einzel['dateiname'];leider ist $bild0 nicht nur leer, es gibt sie nichteinmal,
sagt zumindest: if($bild0){echo "ok";}.
denk ich da irgendwie falsch oder steh ich aufm schlauch?Beim Entwickeln von PHP ist es grundsätzlich von Vorteil, das error_reporting auf E_ALL stehen zu haben. Damit bekommt man Zugriffsfehler auf nicht vorhandene Variablen angezeigt. Das hilft dir hier, um beim Leseversuch von $bild0 zu erkennen, dass es diese Variable nicht gibt. Weiterhin ist für Kontrollausgaben var_dump() eine sehr hilfreiche Funktion.
Eine generelle Vorgehensweise bei Problemen wie deinem, wäre, sich nach dem Anlegeversuch einen Überblick über alle Variablen zu verschaffen. Das geht mit print_r($GLOBALS) oder var_dump($GLOBALS), aber nur für globale Variablen. Für lokale Variablen innerhalb von Funktionen gibt es das leider nicht so einfach[*]. Damit kannst du sehen, was für Variablen angelegt sind und dabei erkennen, dass irgendwas schief läuft und vielleicht auch schlussfolgern, warum das so ist.
[*] Alle lokal vorhandenen Variablen erhält in einem benutzerdefinierten Error-Handler mit einem mit trigger_error() oder anderweitig ausgelösten Fehler.
echo "$verabschiedung $name";
Hallöchen,
prinzipiell stimme ich mit dedlfix überein, hab aber noch 2 ergänzende Bemerkungen:
1. var_dump() ist nach meinem Kenntnisstand keineswegs auf globale Variable beschränkt, sondern kann ebenso den Inhalt jedes x-beliebigen Arrays anzeigen (auch mehrdimensionale).
2. Weis nicht, wie gut sich die theresa mit Arrays auskennt. Aber da sie hier offensichtlich eine variable Anzahl Variablen erzeugt, würde ich ein assoziatives Array vorziehen:
$x = 0;
$AlleNamen = array();
foreach ($allfiles as $file)
{
foreach ($gesamt as $einzel)
{
$AlleNamen['bild'.$x] = $einzel['dateiname'];
$x++;
}
}
Vorteile wären:
- Nur eine (überprüfbare) Variable mit bekanntem Namen statt x Variablen.
- count($AlleNamen) repräsentiert die Anzahl der ermittelten Dateinamen
- Was gefunden wurde, kann mit var\_dump($AlleNamen) sichtbar gemacht werden.
Der Zugriff auf die einzelnen Dateinamen wäre dann
nicht $bild0 (gezwungenermaßen statisch)
sondern $AlleNamen['bild0'] (ist auch statisch)
oder $AlleNamen['bild'.$x](dynamisch, z.B. in einer weiteren Schleife)
Und bei letzterer Variante kann mit if($x < count($AlleNamen)) einem Griff ins Leere vorgebeugt, bzw. dieser bei entsprechender Definition einer for-Schleife von vornherein vermieden werden.
Hoffe das ist verständlich...
MfG
vaudi