Was bringt mir in PHP ein leeres Array(Siehe bild)?

php - (PHP)

5 Antworten

Das ist zwar nicht zwingend nötig, jedoch verhindert man dadurch auch mögliche Fehler, wenn man z.B. das Array abfragen (z.B. den Inhalt oder auch die Länge) will, ohne es vorher deklariert zu haben, so würde PHP eine Notice ausgeben, das ist zwar kein wirkliches Problem, es weist einen nur darauf hin, dass man da eine Variable als Array benutzen will, die gar kein Array ist, aber je nachdem wie oft das vorkommt ist das schon mal nicht so angenehm für die Übersicht beim Debuggen des Codes.

Zudem gibt es auch Funktionen, die erfordern, dass man ihnen ein Array übergibt, wenn man z.B. "array_push" eine nicht deklarierte Variable übergibt statt eines Array, dann funktioniert das nicht und man bekommt nur eine Fehlermeldung, das Array wird dann nicht automatisch erstellt wie bei z.B. "$array[] = 'hallo';" oder so. 

Je nachdem wie man das Array nachher befüllt kann es natürlich auch problemlos funktionieren ohne es vorher als solches zu deklarieren (mal abgesehen von der Übersicht beim Debuggen halt), aber weil es eben nicht immer funktioniert ist es halt üblich, das man eine Variable als solche deklariert (gilt auch für Objekte, bei Strings oder Int z.B. ist es nicht wirklich nötig, wobei ich diese auch immer einmalig mit "0" oder als leeren String initialisieren würde, weil man so u.a. halt die Notice vermeidet, was das Debuggen einfacher macht).

Ich glaube du hast deine Aussagen so formuliert das sie streng genommen stimmen. Dennoch finde ich, sie sollten strikter formuliert werden.

Variablen müssen immer deklariert werden! Nicht weil es nicht anders geht, aber der intelligente Mensch versuchst ja auch nicht, mit geschlossenen Augen Autobahn zu fahren, nur weil es geht. Nein, Variablen werden immer deklariert, alles andere ist falsch! Möglich aber im Sinne guter Programmierung falsch!

Notices sind zwar streng genommen keine Fehlermeldungen aber vom Entwickler während der Entwicklung als solche zu behandeln, sprich zu beseitigen! Denn Notices deuten auf ein Problem hin! Dementsprechend ist während der Entwicklung error_reporting auf E_ALL zu stellen, damit Notices angezeigt werden.

1
@fluffiknuffi2

Naja, Variablen "müssen" eigtl deklariert werden, das stimmt natürlich, das "Problem" ist halt, dass es oft trotzdem auch dann funktioniert, wenn man es nicht tut. Das ist halt bestenfalls unsauber und wird oft einfach aus Faulheit gemacht, das sollte man sich aber besser gar nicht erst angewöhnen (und es gibt ja wie gesagt auch Fälle, wo es dann eben gar nicht mehr funktionieren würde).

Und bzgl der Notices, wenn die egal wären, würde PHP die ja gar nicht ausgeben, und es beugt natürlich auch Folgeproblemen vor wenn man sie einfach direkt vermeidet bzw korrigiert falls sie doch mal auftreten (wobei ich leider aber auch nicht selten Dinge höre wie "ist doch egal, funktioniert ja", ich kenne sogar jemand, der bewusst immer mit ~E_NOTICE arbeitet, "weil das nervt"...).

1

Dieses Beispiel soll zeigen, dass man einem leeren Array auch nachträglich noch Einträge hinzufügen kann. Das kann z.B. dann praktisch sein, wenn die Werte vorher noch nicht bekannt sind. Also wenn diese z.B. vom Benutzer über ein Formular eingegeben werden. Wobei man das Array natürlich auch erst dann erstellen könnte, wenn die entsprechenden Werte vorhanden sind... Je nachdem, wo das ganze deklariert werden muss ^^

Es zeigt einfach nur, dass es möglich ist. Ob und wie man das ganze verwendet, ist für das Beispiel ja relativ egal. Es gibt so gut wie immer mehrere Wege um etwas zu programmieren...

Kommt auf die Umstände an und was genau du meinst.

Aber wenn man zunächst einmal die Werte (und ggf. Schlüssel) nicht kennt, die man einem Array zuweisen will, dann erstellt man zunächst einen leeren Array. [Natürlich kann man jetzt Beispiele finden bei denen das nicht nötig ist  aber das sind für mich Ausnahmen der Regel.]

PHP Array geht nicht?

Wieso geht mein Array nicht:

$i = 0;
//Hier ist die Abfrage
while($array = mysqli_fetch_array($query)){
  echo $array[$i]; //Wenn ich z.b $array[0] eingebe funktioniert es
  $i++; 
}
...zur Frage

Wie kann ich ein Array mit einem Formular füllen (PHP & HTML)?

Hallo,

ich würde gerne ein PHP Skript, welches eine URL erzeugt, an die alle zuvor im Formular eingetragenen Parameter angehangen werden, mit einem Formular befüllen.

Wie schaffe ich das?

Im ersten Bild siehst du das Formular. Im 2. Bild meinen Ansatz der nicht funktioniert.

PS: Das Skript: buyurl_test_smartcard.php befindet sich auf dem Server meiner Wordpress seite

...zur Frage

PHP array mit bubblesort sortieren?

Ich habe dieses array ($numbers) mit 20 Stellen und Zufallszahlen zwischen -100 und 100 erstellt.

for($i = 0; $i < 20; $i++)
{
	$num = mt_rand(-100,100);
	$numbers[$i] = $num;
}

Kann mir jemand die Codesequenz schreiben, wie man dieses array nun mit bubblesort von klein nach groß sortiert und dann sortiert ausgibt?

...zur Frage

was ist am PHP Code falsch?

Bin grad ein bisschen verwirrt.

Auf Bild 1 seht ihr checkboxen, die mit den PHP Code - siehe Bild 2 ausgewertet werden sollen.

Es soll ein Moderationstool werden, womit man automatisch PNs generieren kann.

Sprich if (-Häkchen bei Box 1-) dann soll echo 'du hast gegen Richtlinie TEST1 verstoßen'

So soll es auch bei allen gehen. Kommt aber immer fatal error in line 4. Wieso? Was genau läuft da falsch, wie muss ich das schreiben?

...zur Frage

Wie kann ich in PHP/ HTML Pfeile (mit hinterlegtem) Link zur nächsten/ letzten Seite erstellen?

Hallo zusammen, ich versuche gerade auf meiner Seite zwei Bilder (von Pfeilen nach links und rechts) so mit php-code zu bestücken, dass wenn ich auf den Pfeil nach rechts klicke ich auf die nächste Seite komme...

Ich habe dabei folgende Überlegung:

<?php $array = array[ 1 => 'home', 2 => 'uebermich', 3 => 'guestbook', 4 => 'lounge',

]; var_dump($array); if ($aktuelleseite = '4') { Link auf Home -wenn klick auf bild-

} elseif ($aktuelleseite = '2') include ('pages/'.$aktuelleseite.+1; ?>

Nun habe ich aber keine Ahnung wie ich das umzusetzen habe.. :( bitte um hilfe!

...zur Frage

HTML/PHP Checkbox Value in Array speichern?

Moin,

ich hab ein Problem.

Ich möchte ne Liste mit Checkboxen machen. Die Checkboxen die ausgewählt sind sollen in einem Array gespeichert werden und die Checkboxen sollen so lange ausgewählt sein wie der Wert im Array steht. Außerdem soll der Wert aus dem Array gelöscht werden wenn die Checkbox nicht mehr ausgewählt ist.

Hoffe es war soweit verständlich. Arbeite im Moment mit der Funktion array_push();.

Danke im Vorraus

...zur Frage

Was möchtest Du wissen?