[] nach variable
Simon
- php
Hi,
ist wahrscheinlich eine dumme Frage, hab nur nicht gewusst unter welchem Begriff ich suchen soll.
also was bedeutet [] nach einer Variable:
z.B.
$error_msg[]="blablabla";
MfG
Simon
Guten Tag,
$error_msg[]="blablabla";
Definiert, dass $error_msg ein Array ist und weißt dem nächsten freien Schlüssel "blablabla" zu. Ist dies der erste Wert im Array, wird er den numerischen Wert (int) 0 als Schlüssel erhalten.
Gruß
Christoph Jeschke
Definiert, dass $error_msg ein Array ist und weißt dem nächsten freien Schlüssel "blablabla" zu. Ist dies der erste Wert im Array, wird er den numerischen Wert (int) 0 als Schlüssel erhalten.
ok danke.
Hätte da noch eine Frage:
Ich prüfe mit dem:
if (!$valid){
$error_msg[]="blablabla.";
}
Ob z.B die Email-Adresse richtig ist.
und dann zeige ich die Fehlermeldungen an:
if ($error_msg) {
echo "<h4>Fehler!</h4>";
echo "<ul>\n";
foreach ($error_msg as $err) {
echo "<li>".$err."</li>\n";
}
echo "</ul>";
}
~~~.
Bis dahin funktioniert alles. Aber wenn ich jetzt die Prüfung anders mach und sage:
~~~php
if (!$valid){
$error_msg_email="blablabla.";
}
und dann die Variable $error_msg_email anzeigen will mit dem:
echo $error_msg_email;
wird nichts angezeigt.
MfG
Simon
Hi,
Aber wenn ich jetzt die Prüfung anders mach und sage:
if (!$valid){
$error_msg_email="blablabla.";
}
> und dann die Variable $error\_msg\_email anzeigen will mit dem:
> `echo $error_msg_email;`{:.language-php}
> wird nichts angezeigt.
Dann stellst du jetzt erst mal das eror\_reporting auf E\_ALL (und display\_errors auf on), wenn nicht schon geschehen - und wenn du dann von PHP noch keine Hinweise bekommen solltest, dann machst du mal ein paar Kontrollausgaben, um deine Erwartung an den Scriptverlauf mit der Realitaet abzugleichen.
MfG ChrisB
--
„This is the author's opinion, not necessarily that of Starbucks.“
echo $begrüßung;
Ich prüfe mit dem:
if (!$valid){
$error_msg[]="blablabla.";
Ob z.B die Email-Adresse richtig ist.
Du solltest vorher definitiv dafür sorgen, dass $error_msg vorhanden ist und grundinitialisiert ist. Mit
$error_msg = array();
ist $error_msg auf alle Fälle ein leeres Array. Auch dann, wenn register_globals angeschaltet ist oder anderswo die Variable vorbelegt wurde. Auch wenn der bedingte Zweig nicht abgearbeitet wird, hast du damit ein Array und kannst foreach ungestraft darauf anwenden.
if ($error_msg) {
PHP ist nicht Javascript. Das Vorhandensein einer Variable testet man mit isset() (oder empty(), wenn man eine Prüfung auf "leer" oder nicht vorhanden braucht).
echo "$verabschiedung $name";
Definiert, dass $error_msg ein Array ist und weißt dem nächsten freien Schlüssel "blablabla" zu. Ist dies der erste Wert im Array, wird er den numerischen Wert (int) 0 als Schlüssel erhalten.
genauergesagt ist es eine kurzschreibweise für array_push
echo $begrüßung;
genauergesagt ist es eine kurzschreibweise für array_push
Nein, das ist es nicht. array_push() ist eine Funktion, mit der ein oder mehrere Werte an ein Array angefügt werden können. $foo[] ist eher eine spezielle Form des Array-Zugriffs. Außerdem ist der Aufruf einer Funktion aufwendiger als das Array mit [] oder ['expliziter_key'] zu erweitern
echo "$verabschiedung $name";
Guten Tag,
genauergesagt ist es eine kurzschreibweise für array_push
Davon abgesehen, was dedifix bereits korrekt anmerkte (Sprachkonstrukt statt Funktion) ist sie auch nicht äquivalent zu array_push(), da beim Sprachkonstrukt auch direkt eine Position angegeben werden kann, an welche Stelle der Wert ins Array eingefügt werden soll.
Gruß
Christoph Jeschke
echo $begrüßung;
[...] da beim Sprachkonstrukt auch direkt eine Position angegeben werden kann, an welche Stelle der Wert ins Array eingefügt werden soll.
Es ist nur ein Key, keine Positionsangabe. Folgendes Beispiel
$a = array();
$a[1] = 42;
$a[0] = 23;
foreach ($a as $key => $value)
echo "Key: $key - Value: $value\n";
gibt nicht etwa 23, 42 aus sondern behält die Reihenfolge bei, so wie die Werte hinzugefügt wurden.
echo "$verabschiedung $name";