Eine Variable ermöglicht das Speichern eines Wertes an einer bestimmten Speicheradresse (Speicheradresse). Für bequemes Arbeiten mit diesen Adressen verwenden Programmiersprachen oft die sogenannten Variablennamen.
Gültige Zeichen für Variablennamen sind alle Buchstaben aus dem Englischen Alphabet(Also keine Umlaute und kein ß), Ziffern und Unterstriche. Am Anfang steht ein Buchstabe oder Unterstrich, aber auf keinen Fall eine Ziffer. Selbst definierte Variablen solltest Du stets mit einem mit Buchstaben beginnen, denn PHP stellt System-variablen zur Verfügung, die mit dem Unterstrich beginnen. Eine Ausnahme ist, wenn Du bestimmte Variablen in mehreren Skripts nutzen möchtest.
Kleine Information am Rande: PHP unterscheidet zwischen Groß- und Kleinschreibung.
Wie aus der Bezeichnung hervorgeht, ist der Inhalt variabel und kann jederzeit neu berechnet werden.
Um Variablen zuzuweisen, schreibst Du ein $-Zeichen (Dollar), den Namen der Variable und den Operator = (Gleich). Hinter dem Operator steht der Wert der Variable.
<?php $variablename = "Inhalt"; $ganzzahl = 10; $fließkommazahl = 10.5; ?>
Um der Variable einen nummerischen Wert zuzuweisen, setzt Du kein Anführungszeichen, sonst wird der Wert als Zeichenkette (String) verarbeitet. PHP kann den Datentyp automatisch nach ihrem zugewiesenen Wert bestimmen.
An Variablen kann auch indirekt ein Wert vergeben werden.
<?php $a = 10; $b = $a; echo "Der Wert der Variable \$b ist der von \$a, also ".$b; ?>
Der Wer der Variable $b ist der von $a, also 10.
Sobald Strukturen wie Schleifen oder Funktionen auftauchen, beachtest Du bitte Folgendes:
<?php $a = 10; function zeige() { echo $a; } ?>
Diese Funktion gibt nicht, wie erwatet, 10 aus. Der Bildschirm bleibt leer (oder es wird ein E_NOTICE Fehler ausgegeben), da die Variable $a nicht der Funktion bekannt gemacht wurde (Also nicht im Scope der der Variable liegt).
Mehr zu Funktionen findest du Hier.
Um die Variable bekannt zu machen, musst du global
verwenden. Damit kannst du Variablen und deren Werte strukturübergreifend benutzt werden.
<?php $a = 10; function zeige() { global $a; echo $a; } ?>
10
Noch ein kleiner Hinweis am Rande: Verwende das Komma, um mehrere Variablen als global
zu definieren..
<?php global $variable1, $variable2, $variable3; ?>
Der Server wird diese Variablen in ein Assoziatives Array laden. Mit $GLOBALS['Variablenname']
rufst du eine global
deklarierte Variable auf.
<?php global $a,$b,$c; $a = 10; $b = 10.5; $c = "PHP"; function zeige() { echo " Der Wert der Variable \$a ist".$GLOBALS['a']." und der Wert von \$b ist ". $GLOBALS['b']." und von \$c ist der Wert '".$GLOBALS['c']."'."; } ?>
Der Wert der Variable $a ist 10 und der Wert von $b ist 10.5 und von $c ist der Wert 'PHP'.
Mehr zu Arrays erfährst Du Hier.
Normalerweise verlieren Variablen nach Verlassen eines Strukturblocks, zum Beispiel einer Funktion oder einer Schleife, Ihren in der Struktur neu berechneten Wert (Nach PHP 5.1 ist dies nicht mehr der Fall, wenn Schleifen benutzt wurden.). Ist das nicht erwünscht, kannst du die Variable mit static
deklarieren.
<?php function zeige() { $var1 = 10; $var2 = $var1 + $var1; echo "Der Wert der Variable ist: ".$var1."<br />"; } zeige(); zeige(); ?>
Der Wert der Variable ist 20
Der Wert der Variable ist 20
<?php function zeige() { static $var1 = 10; //Statische Deklaration $var1 = $var1 + $var1; echo "Der Wert der Variable ist: ".$var1."<br />"; } zeige(); zeige(); ?>
Der Wert der Variable ist 20
Der Wert der Variable ist 40
Die statische deklarierte Variable behält ihren in der Struktur neu zugewiesenen Wert bei.
PHP bietet die Möglichkeit, eine Variable in einer anderen zu speichern. Im folgenden Beispiel wird zuerst der Variable $a der Wert name
zugewiesen. Im zweiten Schritt wird eine neue Variable dynamisch erzeugt, indem zwei $-Zeichen ($$) verwendet werden. Der neuen Variable wird der Wert Lernen
zugewiesen. Der Variablenname der dynamisch erzeugten Variable hat den Wert der Variable $a angenommen. Das bedeutet, dass die dynamische Variable jetzt eigentlich $name heißt.
<?php $a = "name"; $$a = "Lernen"; echo $name; ?>
Durch die Funktion isset()
wird eine Variable auf ihre Existenz überprüft.
<?php $test = "PHP"; $existent = isset($test); ?>
Ist die Variable $test nicht deklariert, erhält $existent den Wert FALSE
, was falsch bedeutet. Anders in diesem Beispiel: Hier wurde $existent der Wert TRUE
zugewiesen.
Um zu testen, ob der Wert einer Variable existiert, wird die Funktion empty
genutzt. Diese Funktion gibt ebenfalls FALSE
oder TRUE
zurück.
<?php $variable = "Proggen.org"; $test = empty($variable); ?>
Während isset
nur überprüft, ob die Variable existiert, führt empty
zusätzlich den Test auf einen gültigen Wert durch. Das bedeutet: empty
liefert nur TRUE
sobald die Variable nicht existiert oder keinen Wert(Außer 0 und FALSE
) beinhaltet. Falls doch, liefert es FALSE
.
Variablen können mit der Funktion unset
gelöscht werden. Wenn Variablen nicht mehr benötigt werden, ist diese Funktion sinnvoll, aber veraltet - da PHP alle werte ab Beendung des Skripts löscht - da der Server entlastet wird.
<?php $variable = "Proggen.org"; unset($variable); ?>
Info: Du löschst eine Variable auch, indem Du ihr den Wert NULL
(Also nichts) zuweist.
Konstanten sind Speicherplätze, deren Werte nicht verändert werden können. Ist eine Konstante deklariert, ist sie global im Skript nutzbar.
Das ist Sinnvoll, wenn Du einen Wert an mehreren Stellen des Skripts benötigst, aber nicht ändern möchtest/musst. Damit Du bei Änderungen des Wertes nicht das gesamte Skript nach dem Wert durchsuchen musst, lohnt es sich die Definition der Konstanten, um dann nur diesen Wert zu ändern.
Konstanten werden mit define
deklariert, die Syntax ist die Folgende.
<?php define("KonstantenName","Wert der Konstante"); echo "Der Wert der Konstante 'KonstantenName' ist".KonstantenName; ?>
Der Wert der Konstante 'KonstantenName' ist Wert der Konstante.
An erster Stelle wird der Name der Konstante festgelegt, Im Beispiel lautet der Name KonstantenName
. Der Wert steht, mit einem Komma getrennt vom Konstanten-Name, an zweiter Stelle. Im Gegensatz zu Variablen muss beim Aufrufen einer Konstante das $-Zeichen weggelassen werden.
Konstante | Beschreibung |
---|---|
NULL | NULL ist ein Wert - Naja eigentlich nicht wirklich, den er beinhaltet Wortwörtlich Nichts, Der Datentyp ist ebenfalls NULL nach der Zuweisung. |
TRUE | Der boolean-Wert ist wahr oder auch 1. |
FALSE | Der boolean-Wert ist falsch oder auch 0. |
PHP_VERSION | Gibt die installierte PHP-Version zurück. |
PHP_OS | Gibt den Namen des Betriebssystems zurück, auf dem PHP aktiv ist. |
_._FILE_._ | Gibt den Dateinamen des Skriptes zurück, welches gerade ausgeführt wird. |
_._LINE_._ | Gibt die Zeilennummer in dem Skript zurück, welches gerade ausgeführt wird. |
_._FUNCTION_._ | Gibt den Namen der Funktion zurück, in der diese Konstante ausgeführt wird. |
_._CLASS_._ | Siehe FUNCTION . Ist dasselbe, nur mit einer Klasse. |
_._METHOD_._ | Siehe FUNCTION . Ist dasselbe, nur mit einer Methode. |
Achtung: Alle mit einem „.“(Punkt) im Namen, beinhalten diesen nicht. Bitte entferne ihn, falls du die Konstanten in dein Skript Kopierst.
In PHP ist es nicht nötig, jeden Datentyp explizit zu deklarieren. Der Typ einer Variable wird automatisch durch den zugewiesenen Wert ( Siehe Type Juggling zugewiesenen Wert bestimmt. Es gibt jedoch Situationen, in denen das Erzwingen von Datentypen erforderlich es.
Datentyp | Beschreibung |
---|---|
integer (int) | Ganzzahl. |
float (float) | Fließkommazahl. |
string | Zeichenkette mit 0 bis (eine)beliebige Anzahl von Zeichen. |
boolean (bool) | |
array | Array |
object | Objekt ( Einer Klasse oder anderem). |
resource | Spezieller Datentyp mit einem Verweis auf eine Ressource (zum Beispiel ein Bild |
Zum ermitteln eines Datentypes einer Variable stehen dir folgende Funktion zur Verfügung:
Funktion | Beschreibung |
---|---|
gettype() | Gibt den Datentypen einer Variable zurück. Ist der Datentyp unbekannt, wird unknown type zurückgegeben. |
is_long() | Gibt den Boolean-wert 1 zurück, wenn der Datentyp integer ist. |
is_int() | Siehe is_long() |
is_integer() | Siehe is_long() |
is_double() | Gibt den Boolean-wert 1 zurück, wenn der Datentyp double ist. |
is_real() | Siehe is_double() . |
is_float() | Siehe is_double() . |
is_string() | Gibt den Boolean-wert 1 zurück, wenn der Datentyp string ist. |
is_array() | Gibt den Boolean-wert 1 zurück, wenn der Datentyp array ist. |
is_object() | Gibt den Boolean-wert 1 zurück, wenn der Datentyp object ist. |
is_numeric() | Gibt den Boolean-wert 1 zurück, wenn ein nummerische Wert oder eine Zeichenkette, die Ziffern enthält gegeben wurde. |
is_bool() | Gibt den Boolean-wert 1 zurück, wenn ein boolischer Wert vorliegt. |
is_scalar() | Gibt den Boolean-wert 1 zurück, wenn ein nummerischer Datentyp vorliegt. |
is_resource() | Gibt den Boolean-wert 1 zurück,wenn es sich um eine Ressource handelt. |
is_NULL() | Gibt den Boolean-wert 1 zurück, wenn die Variable NULL ist. |
…Ansonsten 0.
Folgende Beispiele verdeutlichen Dir, wie PHP verschiedene Datentypen anhand von Wertzuweisung erkennt ( Siehe Type Juggling). Dabei wird der Variable $a
der Wert zugewiesen, der durch die Funktion gettype() erkannt werden soll.
Zuerst wird an die Variable $a eine Ganzzahl mit dem Wert 10 vergeben:
<?php $a = 10; $datentyp = gettype($a); echo "Der Datentyp der Variable \$a ist: ".$datentyp."."; ?>
Der Datentyp der Variable $a ist: integer.
Jetzt erhält die Variable $a den Fließkomma-wert 2.45. In PHP verwendest Du einen Punkt anstelle eines Kommas.
<?php $a = 2.45; $datentyp = gettype($a); echo "Der Datentyp der Variable \$a ist: ".$datentyp."."; ?>
Der Datentyp der Variable $a ist: double.
Nachfolgend steht der Wert der Variable $a für eine Zeichenkette, die PHP durch einfache oder doppelte Anführungszeichen erkennt.
<?php $a = "Dies ist eine Zeichenkette."; $datentyp = gettype($a); echo "Der Datentyp der Variable \$a ist: ".$datentyp."."; ?>
Der Datentyp der Variable $a ist: string.
Wenn Du unterschiedliche Datentypen miteinander verknüpfst, wird dem Entstandenem Wert automatisch der Sinnvollste Datentyp zugewiesen:
<?php $a = 10;//Integer $b = 10.65; // Double $c = $a + $b; echo "Der Wert der Variable \$c ist $c und vom Datentyp ."gettype($c); ?>
Der Wert der Variale $c ist 20.65 und vom Datentyp double.
Für das oben gezeigte Beispiel sehe man sich bitte PHP-Operatoren an ;).
Der Datentyp Integer und Float ergeben zusammen Float. Die Datentypen Integer und String ergeben String. Und die Datentypen Float und String ergeben ebenfalls String.
Merke: Variablen, egal von welchem Datentyp, ergeben immer String, falls ein String in der Rechnung benutzt wird.
Gegenfalls ist es erforderlich eine Variable umzuwandeln. Dazu dient die Funktion settype()
. Im Beispiel ist der Wert der Variable $a zunächst vom Typ integer
und wird dann in eine Fließkommazahl umgewandelt.
<?php $a = 10; settype($a,"float"); echo "Der Datentyp der Variable \$a ist: ".gettype($a); ?>
Der Datentyp der Variable $a ist: double
PHP unterstützt zudem auch so genannte Cast-Operatoren. Durch das Voranstellen des Operatoren vor eine Variable wird ebenfalls der Datentyp geändert. Alle Cast
-Operatoren findest du Hier.
<?php $a = 10; $a = (float) $a; //Vorangestellter cast-operator echo "Der Datentyp der Variable \$a ist: ".gettype($a); ?>
Der Datentyp der Variable $a ist: float