Variablen in PHP
Beitrag geschrieben von King of Darkness am 2007-05-13
Kurzbeschreibung:
In diesem Kapitel wird es darum gehen wie PHP Variablen behandelt und wie man mit Variablen umgehen kann und auf sie zugreifen kann.
Wie in allen Programmier/Scriptsprachen gibt es auch in PHP Variablen in den verschiedenste Werte gespeichert werden können. Mit Variablen kann gerechnet werden, sie können für wiederkehrende Textabschnitte genutzt werden und vieles mehr.
Variablen erkennt man bei PHP, das sie mit einem $-Zeichen beginnen. In PHP ist es nicht nötig sie vorher zu deklarieren, sondern es braucht nur einen Wert zugewiesen werden und die Variable existiert fortan, man braucht sich also auch keine Gedanken machen was man in einer Variable speichern will, egal ob String, Array oder Zahl, kein Problem. Das hat aber nicht nur Vorteile, da sich schnell mal ein Schreibfehler einschleichen kann und aber kein Syntaxfehler auftaucht aber das Script nicht so läuft wie man es sich vorstellt. Dem entgegen wirkt z.B. eine Entwicklungsumgeben für PHP z.B. das Zend Studio oder Eclipse unterstützen auch Syntaxvervollständigung was den Umgang mit PHP doch schon sehr erleichtert, gerade am Anfang.
Aber nun zu ein paar Beispielen:
$zahl = 123;
$string = "Hallo Welt";
$array = Array("test", "test2", 123 );
$boolean = true;
?>
In diesem kleinen Beispiel weisen wir 4 Variablen unterschiedliche Werte zu, Zahlen, Strings (Zeichenketten), Arrays und Boolean, letzeres ist ein Logikwert wo nur unterschieden wird zwischen wahr (true) und falsch (false).
PHP erkennt automatisch was gespeichert wird und kümmert sich im Hintergrund um die Speicherverwalten, selbst wenn wir der Variable $zahl, auf einmal Text zuweisen passiert kein Unglück, versucht man so etwas in Sprachen wie z.B. C++ gibt das Fehler. Folglich ist es auch dem Array egal ob wir ihm Zahlen und Strings gemischt liefern oder ob alles ein und derselbe Datentyp ist. Arrays werden in den meisten Fällen dazu benutzt um zusammenhängende Daten zu halten, bzw. eine Liste an Daten. Um das zu ermöglichen gibt es die Möglichkeit Arrays Mehrdimensional zu gestallten, dass bedeutet das in einem Arrayfeld ein weiteres Array gehalten werden kann.
$daten = Array(Array("test", "test2"), Array("test3", "test4"));
?>
Das Ergebnis sieht dann so aus:
(
[0] => Array
(
[0] => "test"
[1] => "test2"
)
[1] => Array
(
[0] => "test3"
[1] => "test4"
)
)
Um sich anzuschauen wie eine Variable aufgebaut ist bzw. was darin steht verwende ich die Funktion print_r();
print_r($daten);
?>
Eine weiter Möglichkeit bietet die Funktion var_dump();
var_dump($daten);
?>
Diese Liefer eine genauere Ansicht über das was gespeichert ist:
[0]=>
array(2) {
[0]=>
string(4) "test"
[1]=>
string(5) "test2"
}
[1]=>
array(2) {
[0]=>
string(5) "test3"
[1]=>
string(5) "test4"
}
}
Man sieht dort welcher Datentyp verwendet und in den Klammern dahinter wie viel Speicher in Byte belegt wird.
Dies ist unter umständen beim Debuggen (Fehlersuche) wichtig, da es Funktionen gibt um auf einen bestimmten Datentypen abzuprüfen.
Die Funktionen nennen sich is_integer(),is_array(),is_string(). Das sind aber noch nicht alle Funktionen, aber dazu in einem späteren Kapitel mehr.
Um den Inhalt von Variablen ausgeben zu können gibt es wie oben schon gesagt die Funktionen print_r() und var_dump(), daneben gibt es aber auch die Funktion echo oder print die dann nur den reinen Inhalt einer Variable zurück geben bzw. darstellen. In den meisten Scripten wird man eher echo finden, welches man aber benutzt ist im Grunde genommen egal.
echo "Horst fährt morgens nachhause";
?>
Diese Zeile Code gibt euch, Horst fährt morgens nachhause, aus.
$text = "Horst fährt morgens nachhause";
echo $text;
?>
Diese auch.
Wie ihr seht kann echo und print ohne Klammern verwenden, dies ist aber normal bei Funktionen notwendig, diese beiden Funktionen stellen dabei eine Ausnahme dar.
Angenommen wir haben in verschiedenen Variablen Text gespeichert und wollen diesen in einer Variablen zusammenfassen. Dafür gibt es den Punkt.
$text1 = "Horst fährt morgens";
$text2 = "mit dem Fahrrad nachhause";
$text = $text1." ".$text2;
?>
Weil wir zwischen den beiden Worten "morgens" und "mit" ein Leerzeichen brauchen bauen wir einfach noch eins ein. Mit dem Punkt kann man also Strings aneinander hängen, egal ob sie fest im Code stehen oder in Variablen.
Ein Weiteres Beispiel mit Arrays, aber zuvor noch etwas zu Arrays und deren Speichermethoden.
Array können auf verschiedenste weisen erstellt werden
$array1 = Array("text");
$array2 = Array("foo" => "bar");
$array3["foo"] = "barbar";
$array4[] = "test";
$array[] = $array1;
$array[] = $array2;
$array[] = $array3;
$array[] = $array4;
print_r($array);
?>
Nun sollte das auf eurem Bildschirm erscheinen:
(
[0] => Array
(
[0] => text
)
[1] => Array
(
[foo] => bar
)
[2] => Array
(
[foo] => barbar
)
[3] => Array
(
[0] => test
)
)
Zur Erklärung, auf Arrays kann man in der Regel mit den Eckigen Klammern zugreifen, so kann man auch in ein Array rein schreiben, lässt man dabei die Klammern leer wird ein neues Arrayelement mit fortlaufender Nummer angelegt. Um z.B. auf das Wort barbar zugreifen zu können und dabei über die Variable $array zu gehen muss man folgendes schreiben:
echo $array[2]["foo"];
?>
Wie man sieht, gar nicht mal so schwer.
Also zurück zu Horst. Horst hat natürlich verschiedene Möglichkeiten nachhause zu kommen
$text1 = "Horst fährt morgens";
$text2 = "mit dem";
$text3 = "nachhause";
$fahrzeuge = Array("auto1" => "Porsche", "auto2" => "Trabbi");
echo $text1." ".$text2." ".$fahrzeuge["auto1"]." ".$text3;
?>
Raus kommt:
Horst fährt morgens mit dem Porsche nachhause
Ich denke mal ihr habt nur einen kleinen Überblick über Variablen und das sie in PHP einfach eingesetzt werden können, dabei habt ihr erfahren was ein Array ist und wie man ihn erstellt und wie man auf ihn zugreift. Im nächsten Kapitel wird es dann um Schleifen gehen, diese kann man auch benutzen um Arrays durchzugehen und so größere Mengen an Daten zu verarbeiten.

