Hallo Sven,
Hallo Matze!
Du solltes den Variablen einfach mal so irgendetwas zuweisen, damit das Script auch weiss das es die gibt.
Wer sagt das?
Das sagen die leute, die ständig mit Scripten arbeiten.
Ausserdem weiss man schon am anfang welche Variablen existieren bzw. existieren werden. Grössere Scripte verleiten gerne dazu, Variablen doppelt zu definieren. Das passiert nicht wenn man die Zentral mal anlegt.
Wenn Du Variablen nicht zum anfang difinierst kann es schon vorkommen, dass es ab einem bestimmten Punkt diese Varaible noch nicht kennt.
Warum sollte das denn so sein?
Ja ganz einfach weil eine Abfrage auch bei einer hochsprache wie z.B. PHP oder Perl (if $testwert == "irgendwas")
Gründsätzlich schief geht, wenn Du die Variable $testwert nicht schon vorher gesetzt hast z.B.
$testwert = ""; # Das ist ein teswert zum testen.
Ja und mit Kommentar weiss man dann auch wozu die Variable gut ist.
Generell allen Varaiblen einfach mal "" zuweisen um diese zu initialisiern.
Was soll das denn bringen?
Das bringt wenn man es an der richtigen Stelle macht, z.B. den vorteil, dass Dein Perlscript nicht sagt: $xy ist nicht initialisiert. :-))
Bei anderen hochsprachen musst du sowas explizit machen.
Ja!
C,C++,Java etc. sind streng statisch typisiert und verlangen explizite Deklaration der Variablen!
Aber:
PHP nicht! Genau wie in Perl (daher hat PHP nun mal einen Großteil entlehnt - auch wenn es viele Leute
nicht gerne lesen/hören) sind Variablen in PHP dynamisch typisiert und können ohne Initialiserung verwendet werden.
Da liegst Du etwas falsch.
Du musst unter anderen hochsprachen wie PHP und PERL zwar nicht typisieren.... aber Du musst Sie initialisieren um diese Variable zu haben. Und wenn es erst dann passiert, wenn Du Ihr einen Wert zu weisst. Sprich irgendwo innmitten eines Scriptes aber immer bevor Du die Variable überprüfst oder weiter zuweisen möchtest.....
Das ist ja gerade ein/der Vorteil bei dieser Art von High-Level-Languages: man verwendet eine Variable einfach
Und der ganz grosse Nachteil solcher sprachen ist... kein Fake!!
Wenn Du innerhalb einer Funktion z.B. Perl eine Varible nicht als my $xy = ""; deklarierst ist die Global gültig und taucht eventuell mal ganz wonderster wieder auf wo du gar nicht mehr damit rechnest, wenn die Funktion zu ende ist. Da gab es schon böse überraschungen.
Nur weil etwas nicht zwingend notwendig ist heisst das noch lange nicht, dass man nicht trotzdem sauber arbeiten muss.
- ohne Typisierung oder eine andere Art von Deklaration zu dem Zweck Daten (welcher Art auch immer) temporär zu speichern, weil man dies nun mal im moment tun will...
Jaja und schon viele sind dabei auf die Schnauze gefallen und haben Tagelang mit debugger einen Fehler gesucht...
Gruss Sven
Gruss Matze
Nimms mir nicht übel aber das Problem oben im Script ist eben so eines wo eine Variable noch nicht existiert obwohl man mit Ihr arbeiten möchte.....
Genau deshalb ist es nicht verkehrt Variabeln rechtzeitig zu definieren.