PHP-Einfach.de PHP lernen leicht gemacht

Navigation
» Startseite
» Newsübersicht
» Kontakt
» Impressum

Community
» Forum
» Gästebuch

Tutorial
» PHP Tutorial
   » Anfang
   » Erste Schritte
   » Variablen
   » if-Anweisung
   » Log. Operatoren
   » Übung
   » Dateien
   » Schleifen
   » Array
   » Dateien Teil 2
   » Datum & Zeit
   » Mail Funktion
   » Suchen &
      Ersetzen

   » Nützliche
      Funktionen

   » Sessions

» MySQL Tutorial
» PHP
» MySQL
» Codeschnipsel

Downloads
» Einführung
» Scripts
» Command Board

Sonstiges
» md5-Generator
» Generator
» Wissenswertes

PHP lernen


Dieses Projekt wird unterstützt von
Lichteffekte Shop

 
Partner:

PHP Variablen



In PHP werden Texte oder auch Zahlen in sogenannten PHP Variablen bzw. einfach nur Variablen gespeichert, um diese dann später mit Hilfe von echo wieder auszugeben.

Variablen in PHP beginnen immer mit einem Dollarzeichen ($),
direkt gefolgt vom Variablen-Namen, danach ein "Gleichheitszeichen" (=) und anschließend der Text in Anführungszeichen (") eingebunden. Am Ende das Semikolon als Befehlsabschluss(;).

Den Variablen kann man einen beliebig passenden Namen geben, allerdings muss auf Groß- und Kleinschreibung geachtet werden.
Ich würde die Variablen immer klein schreiben, damit kein Durcheinander und damit auch keine Fehlerquellen entstehen können.

Eine Variable in PHP kann z.B. so aussehen:
<?php
$name = "Nils Reimers";
?>

In diesem Beispiel wird die Variable $name mit dem Inhalt Nils Reimers definiert.
Zu beachten dabei ist, dass Variablennamen mit einem Buchstaben oder einem Unterstrich beginnen. Zahlen dürfen als Anfangszeichen nicht benutzt werden.
Wenn wir eine Variable doppelt "definieren", so überschreiben wir den Inhalt der Variable. Per Echo wird dann nur der aktuelle Inhalt ausgegeben.
Natürlich muss der echo-Befehl nach der Variable-Definition stehen, da PHP eine Interpreter-Sprache ist und den Code zeilenweise von oben nach unten abarbeitet.
Wenn echo vor der Variable steht, so versuchen wir eine nicht definierte Variable auszugeben und erhalten eine leere Ausgabe.

Sofern bestimmte Einstellungen gesetzt sind, kann es sogar passieren, dass ein Angreifer beliebigen Text einschleusen kann.

Zur Ausgabe benötigt man natürlich wieder den Befehl echo.
Das Script für dieses Beispiel sieht dann so aus:
<?php
$name = "Nils Reimers";
echo "Mein Name ist $name";
?>
Als Ausgabe erhalten wir:
Mein Name ist Nils Reimers

Wir können den Inhalt von einer Variable natürlich auch wieder überschreiben, dazu weisen wir der Variable einfach den neuen Wert zu:
<?php
$name = "Paul Meier";
echo "Zuerst heiße ich $name <br>";

$name = "Stefan Müller";
echo "Dann ist mein Name $name";
?>
Die Ausgabe wäre dann:
Zuerst heiße ich Paul Meier
Dann ist mein Name Stefan Müller


Bisher wäre diese Funktion nur bei sehr langen Texten interessant, möchte man z.B. eine Person an 10 verschiedenen Stellen ansprechen.

Wenn wir jedoch mit echo nur eine Variable abrufen (keinen weiteren Text), dann können (müssen aber nicht) wir die Anführungszeichen weglassen.

Der Code:
<?php
$name = "Nils Reimers";
echo $name;
?>
Man kann auch an eine bereits vorhandene Variable eine weitere Variable, oder einen Text anhängen.
<?php
$name = "Nils ";
$name .= "Reimers";
echo $name;
?>
Ausgabe: Nils Reimers

Soll eine Variable oder ein Text an eine bereits bestehende Variable "angehängt" werden, geschieht dies mit einem Punkt vor dem Gleichheitszeichen. Dadurch erkennt PHP, dass der nach dem Gleichheitszeichen folgende Text oder die folgende Variable an die bestehende Variable angehängt werden soll.

Eine Variable kann theoretisch unendlich oft verlängert werden.

Dies können wir auch direkt in dem echo benutzen:
<?php
$name = "Nils";
echo "Mein Name ist ".$name." Reimers";
?>
Hier haben wir eine zusammengesetzte Ausgabe. Zuerst geben wir Mein Name ist aus, nach den Anführungszeichen setzen wir einen Punkt und dann die Variable.
Nach der Variable können wir entweder mit Semikolon die Ausgabe beenden, aber hier haben wir noch den Text Reimers angehängt.

Dies geht selbstverständlich auch mit Variablen:
<?php
$farbe = "rotes";
$text = "Wir haben ein ".$farbe." Haus";
echo $text;
?>
Diese Methode wird später noch des öfteren benutzt.

Rechnen mit Variablen

Natürlich kann man mit PHP auch rechnen.

Weist man einer Variable eine Zahl zu, so dürfen im Gegensatz zum Text hier keine Anführungszeichen benutzt werden, da PHP dieses sonst als Text behandeln würde.

<?php
$zahl1 = 10;
$zahl2 = 5;
?>
In diesen Variablen sind jetzt die Zahlen 10 und 5 gespeichert.

Jetzt lassen wir mal rechnen:

<?php
echo $zahl1 + $zahl2;
?>
Als Ergebnis erhalten wir die Summe der beiden Zahlen. Natürlich könnten wir dies einfach auch so schreiben:
<?php
echo 10 + 5;
?>
Falls aber diese Zahlen zu einem späteren Zeitpunkt nochmals benutzt werden sollen, speichert man diese am besten in Variablen.
<?php
$zahl = 1;
$ergebnis = $zahl + 5;
echo $ergebnis;
?>

Hier einige weitere Beispiele:
<?php
echo $zahl1 + $zahl2; //addieren
echo $zahl1 - $zahl2; //subtrahieren
echo $zahl1 * $zahl2; //multiplizieren
echo $zahl1 / $zahl2; //teilen/dividiern
echo pow($zahl1,$zahl2); //Zahl1 hoch Zahl2 (102)
echo sqrt(64); // Wurzel von 64
?>
Natürlich können auch diese Ergebnisse wieder in extra Variablen gespeichert werden.

Decrementieren und incrementieren
Um den Wert einer Variable um 1 zu erhöhen bzw. um 1 zu verkleinern, gibt es einen einfachen Trick:
<?php
$erhoehen = 1;
$erhoehen++;
echo $erhoehen;
?>
Ausgabe ist 2

<?php
$senken = 2;
$senken--;
echo $senken;
?>
Ausgabe ist 1

Wird an den Variablen-Namen (einer Zahlenvariable) ein doppeltes Pluszeichen in Form von ++ angehängt, so wird der Inhalt dieser Variable, also die Zahl incrementiert, das heißt um 1 erhöht.
Wird dagegen ein -- verwendet, wird der Wert decrementiert, also um 1 gesenkt.


Variablentypen

Da PHP den Typ von Variablen selber festlegt, brauchen wir diesen Aspekt beim Programmieren nicht zu betrachten. Aber in Foren (o.ä.), werden immer bestimmte Fachausdrücke benutzt, um Variablentypen zu beschreiben.
Ein Variablentyp legt fest, welchen Inhalt eine Variable haben soll.
Da aber wie gesagt, PHP den Typen selber festlegt, kann sich der Typ der Variable auch ändern.

Es gibt dabei folgende Typen:
Integer: Eine Integer-Variable enthält nur Ganzzahlen, d.h. Zahlen ohne Komma.
String: Dies ist eine Variable, die einen Text/Satz/Wort enthält.
Float: Eine Dezimalzahl, d.h. eine Zahl mit Komma. Man verwendet aber einen Punkt als Komma.
Double: Das gleiche wie float, nur mit mehr Nachkommastellen.
bool: Dies sind die Werte true und false

Bsp:
<?php
$integer = 15; //Eine Integer Variable
$string = "Ganz viel Text"; //Ein String
$float = 15.5; //Eine Zahl mit einem Komma
$bool = true;
?>

Variablen übergeben

Diese Möglichkeit ist ein sehr wichtiges Detail von PHP, denn damit ist es möglich, z.B. vom Besucher eingegebene Texte oder berechnete Daten auf die nächste Seite zu übertragen.

Es gibt zwei Methoden um Variablen zu übergeben,
POST und GET.

Als erstes schauen wir uns POST an.

Als Beginn erstellen wir eine Seite mit einem ganz normalen Formular.

Dieses könnte zum Beispiel so aussehen:
<form action="seite2.php" method="post">
Ihr Vorname:<br>
<input type="Text" name="vorname">
<input type="Submit" value="Absenden">
</form>

Für dieses Formular benötigen wir kein PHP, also können wir das Formular auch in einem normalen HTML-Dokument speichern (z.B. seite1.html).

Es ist auch wichtig, dass wir allen Eingabefeldern einen einzigartigen Namen zuweisen, damit wir sie nach dem Absenden auf der zweiten Seite auch korrekt abfragen können.
Haben zwei Felder den selben Namen, so wird nur das letztere Feld übertragen, da die vorige Eingabe überschrieben wird (entspricht einer Neudefinition dieser Variable)

Als nächstes erstellen wir seite2.php, an welche die Eingaben (hier: Ihr Name) gesendet wird.

Der Inhalt der seite2.php sieht dann so aus:

<?php
echo $_POST["vorname"];
?>
Wir erinnern uns an das Input-Feld mit dem Namen vorname auf seite1.html, genau diese Eingabe rufen wir jetzt mit $_POST["vorname"]; ab.
Klicken wir auf der Formularseite auf Absenden, so wird seite2.php aufgerufen, dabei werden die Daten übermittelt und von dieser ausgegeben.

Mit $_POST["vorname"]; können wir also die gesendeten Daten wieder abfragen.
["vorname"] gibt den Namen des abgefragten Inputfeldes aus der Formularseite an (hier vorname).

Diese Abfrage kann auch in einer Variable gespeichert werden, um diese dann später flexibler weiterverarbeiten zu können.

Der Code dafür würde so aussehen:
<?php
$vorname = $_POST["vorname"];
echo $vorname;
?>
Soll $_POST["vorname"]; in einer Variable ($vorname) gespeichert werden, darf $_POST["vorname"]; nicht in Anführungszeichen stehen, da dieses sonst als Text interpretiert wird.

Natürlich können wir damit mehrere Eingaben abrufen. Dazu müssen die Befehle untereinander stehen.
<?php
$vorname = $_POST["vorname"];
$nachname = $_POST["nachname"];
?>


Neben der POST Methode gibt es auch noch die GET Methode.

Bei der GET Methode werden die zu übergebene Daten an die URL angehängt.
Würden wir unser Formular mit der Methode GET verschicken, so würde die URL am Ende etwa so aussehen.

seite2.php?vorname=Nils

Mit dem ? bestimmt der Browser, dass an die URL bestimmte Eingaben angehängt werden.
Das erste Wort nach dem Fragezeichen (vorname) ist der Feldname des Input-Feldes.
Alles was nach dem Gleichheitszeichen steht, ist die Eingabe (Nils).

Möchte man jetzt mehr als ein Feld übertragen, so werden die weiteren Feldnamen mit einem Und-Zeichen (&) angehängt.

Das sieht dann so aus:

seite2.php?nachname=Reimers&vorname=Nils

Werden diese Eingaben abrufen, sieht das so aus:

<?php
echo $_GET["nachname"];
echo $_GET["vorname"];
?>
Natürlich können wir diese Daten jeweils auch wieder in einzelne Variablen speichern.

Ältere Versionen

Falls ihr eine ältere Version als 4.1.0 benutzt, müsst ihr noch die Langform der Befehle schreiben. Anstatt $_POST["feldname"]; müsst ihr dann $HTTP_POST_VARS["Feldname"]; und aus $_GET["Feldname"]; wird $HTTP_GET_VARS["Feldname"];.
Die Langformen werden genauso angewendet, wie die Kurzformen.

Allerdings sollte man, sofern es funktioniert, die Kurzform benutzen.

POST oder GET?

Wann benutzt man POST und wann GET ?

Die Frage ist leicht zu beantworten. Wenn man Eingaben aus einem Formular übergeben möchte, so sollte man immer POST benutzen.
Warum ?
Mit GET werden die Eingaben der URL angehängt, dadurch ist die Textlänge eingeschränkt, außerdem kann jeder im Browser-Verlauf an der URL erkennen, was als Daten übermittelt wurde, und bei einer Passworteingabe ist das nicht so schön.

Vorteil von GET
GET wird benutzt, wenn man einfache Informationen übergeben möchte. Soll zum Beispiel mit dem Klick auf einen Link eine Auswahl übergeben werden, so benutzt man die Methode GET
Ein Link in einer aufrufenden Seite könnte dann so aussehen:

<a href="buch.php?seite=1">Seite 1</a>

In diesem Beispiel würde die Eingabe 1 übermittelt werden.
Solche Links werden in PHP zur Programmierung dynamischer Seiten benutzt (z.B. Foren).

Wozu brauche ich später Variablen?
Nun haben wir jetzt die ersten Grundlagen über Variablen kennen gelernt.
Fragt man Einträge aus einer Datenbank oder Datei ab, werden diese zur besseren Übersicht erst in Variablen gespeichert, dann aufbereitet (selektiert, sortiert, oder berechnet) und erst danach mit echo wieder ausgegeben.
Außerdem werden wir später kennen lernen, wie man Variablen überprüfen kann, also ob z.B. der Name Nils war oder ähnliches. Falls ihr hier Probleme habt, solltet Ihr diesen Abschnitt noch mal lesen.
Denn alles was jetzt folgt, fragt, überprüft und gibt Variablen aus.

Im nächsten Teil lernen wir die PHP if-Anweisung kennen.

Autor Andavos

News
13.08 - » Spam im Gästebuch
Endlich Schluss mit dem Spam

08.12 - » Clanletter 2.0
Clanletter wurde komplett neu programmiert

01.09 - » Command Board 1.0 - 2.0
Das Command Board 1.0 Beta 2.0 ist erschienen


Mehr

Forum
» spl_autoload_register

» Funktion oder Klasse ?

» Preg_replace Fehler







© PHP-Einfach.de 2003 - 2014