PHP - Variablen und deren Verwendung
Sie befinden sich: Home > Php
> Php Variablen
PHP-Variablen sind immer durch ein $-Zeichen gekennzeichnet. Zulässig
sind nur Namen, die nicht anderweitig durch Funktionsnamen vergeben sind. Es sind alle
alphanumerischen Zeichen zugelassen (a-zA-Z0-9_\x7f-\xff). Der Name berücksichtigt Groß-
und Kleinschreibung, darf jedoch nicht mit einer Ziffer beginnen.
Grundlagen der PHP-Variablen
Eine der wichtigsten Eigenschaften von PHP gegenüber anderen Programmiersprachen
besteht darin, dass Variablen im Allgemeinen kein direkter Typ zugewiesen wird, wie es zum
Beispiel bei C oder Java der Fall ist. Das bedeutet, dass eine Variable zu Beginn
eine Ganzzahl (Integer) beinhalten kann und später eine Zeichenkette (String). PHP nutzt ein Konzept namens "Loose Typing".
Definition von Variablen - Ein Beispiel:
<?php
// eine String-Variable
$var = "Tim";
/* eine andere Variable (beachte die Groß-/Kleinschreibung) */
$Var = "Hans";
// gibt "Tim Hans" aus
echo $var, " ", $Var;
// ungültig - wird einen Syntaxfehler erzeugen
$4you = 23;
// gültig - beginnt mit Unterstrich
$_4you = 23;
// gültig - alphanumerisches Zeichen
$huschen = 23;
?>
Erklärung:
Der oben stehende Code definiert zwei Variablen mit den Namen $var und $Var. Da PHP-Variablennamen
case-sensitive sind (Groß-/Kleinschreibung wird unterschieden), handelt es sich um zwei verschiedene Variablen.
Der Wert für $var ist „Tim“ und der Wert für $Var ist „Hans“.
Mit der echo-Anweisung wird der Inhalt beider Variablen ausgegeben.
Die Variable $4you würde einen Syntaxfehler erzeugen, da Variablennamen nicht mit einer Zahl beginnen dürfen.
Die Variable $_4you ist dagegen gültig, da Variablen mit einem Unterstrich beginnen dürfen.
Die Variable $huschen ist ebenfalls gültig, da sie mit einem alphanumerischen Zeichen beginnt.
Datentypen in PHP
Obwohl PHP lose typisiert ist, kennt es dennoch die folgenden Datentypen:
- Boolean - kann nur TRUE oder FALSE sein
- Integer - Ganzzahl mit Vorzeichen
- Float/Double - Gleitkommazahl
- String - Zeichenkette
- Array - geordnete Sammlung von Werten
- Object - Instanz einer Klasse
- NULL - spezielle Variable ohne Wert
- Resource - Referenz auf externe Ressource
Beispiel für Typumwandlung:
<?php
// String
$var = "42";
// Umwandlung in Integer
$num = (int)$var;
$float = 3.14;
// Umwandlung in Boolean (true, da nicht leer)
$bool = (bool)$var;
// string(2) "42"
var_dump($var);
// int(42)
var_dump($num);
// float(3.14)
var_dump($float);
// bool(true)
var_dump($bool);
?>
Mathematische Operationen mit Variablen
<?php
$var = 10;
$Var = 11;
// Speichert das Ergebnis der Multiplikation in $var
$var = $var * $Var;
// gibt 110 aus
echo $var;
// erhöht den Wert von $var um 1
$var++;
// gibt 111 aus
echo $var;
// verringert den Wert von $var um 1
$var--;
// gibt 110 aus
echo $var;
// Kurzformen für mathematische Operationen
// äquivalent zu: $var = $var + 5
$var += 5;
// äquivalent zu: $var = $var - 2
$var -= 2;
// äquivalent zu: $var = $var * 2
$var *= 2;
// äquivalent zu: $var = $var / 4
$var /= 4;
?>
Erklärung:
Der obige PHP-Code zeigt verschiedene mathematische Operationen mit Variablen. Zunächst werden zwei Variablen
definiert und dann miteinander multipliziert. Das Ergebnis wird in der Variable $var gespeichert.
Anschließend wird der Wert durch Inkrement- und Dekrement-Operatoren sowie durch kombinierte
Zuweisungsoperatoren verändert.
Variablen-Gültigkeitsbereiche (Scopes)
In PHP gibt es verschiedene Gültigkeitsbereiche für Variablen:
- Lokale Variablen - nur innerhalb einer Funktion gültig
- Globale Variablen - im gesamten Skript verfügbar, aber nicht in Funktionen
- Statische Variablen - behalten ihren Wert über mehrere Funktionsaufrufe
- Parameter - werden an Funktionen übergeben
<?php
// globale Variable
$global_var = "Ich bin global";
function test() {
// lokale Variable
$local_var = "Ich bin lokal";
// Zugriff auf globale Variable
global $global_var;
// gibt "Ich bin global" aus
echo $global_var;
// gibt "Ich bin lokal" aus
echo $local_var;
// statische Variable
static $count = 0;
// erhöht sich bei jedem Aufruf
$count++;
echo $count;
}
// Funktionsaufruf
test();
// echo $local_var;
/* Fehler! $local_var ist außerhalb nicht verfügbar */
/* Alternative Zugriffsmethode auf globale Variablen */
// gibt "Ich bin global" aus
echo $GLOBALS['global_var'];
?>
Einen besonderen Stellenwert im Bereich der Variablen nehmen die sogenannten Arrays (Felder) ein.
Ein Beispiel verdeutlicht den Gebrauch für mehrdimensionale Felder:
<?php
$fruechte = array ( "früchte" => array("a" => "orange", "b" => "banane", "c" => "apfel"),
"nummern" => array(1, 2, 3, 4, 5, 6),
"var"=> array("erstes", 5 => "zweites", "drittes")
);
?>
Das Array $fruechte hat nun ein internes
Feld mit dem Namen „fruechte“ mit den Elementnamen „a“ „b“
und „c“ wobei „a“ die Zeichenfolge „orange“ speichert,
äquivalent „b“ „banane“, sowie „c“ „apfel“.
Die Zuweisung geschieht durch den Operator „=>“. PHP kann im Gegensatz zu
anderen Sprachen Arrays mit assoziativen Feldnamen verwenden, dies erleichtert das Verständnis
und die übersichtlichkeit des Quelltextes erheblich.
Die zweite Zeile legt im Array $früchte ein weiteres Feld mit dem Namen „nummern“
an. In diesem Feld werden die Zahlen 1 - 6 nacheinander in nummerisch aufsteigend
nummerierte Felder abgelegt. Zu beachten ist hier das nicht explizit array(0=>1,1=>2,....
5=>6), geschrieben werden muss, sondern die oben gewählte Kurzform vollkommen
ausreichend ist.
Bei numerisch aufsteigender Durchnummerierung der Felder ist zu beachten, dass beim Index 0
begonnen wird. Ein Array mit zehn Feldern
hat also die Indizes von 0 bis 9. Dieser Umstand, dass diese Zählweise für
Menschen ungewöhnlich ist, birgt eine beliebte Fehlerquelle. Diese Art von Fehlern ist
mitunter schwer zu finden.
Die dritte Zeile im Beispiel benutzt eine Kombination aus den beiden anderen Methoden. Im
Feld „var“ liegt im Feld 0 der String „erstes“, im Feld 5 der String
„zweites“ und im Feld 6 wird „drittes“ als Zeichenfolge abgelegt.
Wie auch bei normalen Variablen sind Arrays nicht typisiert, was bedeutet, es können
verschiedene Speichertypen verwendet werden.
Beabsichtigt man ein bestimmtes Element eines Arrays abzufragen oder dessen Inhalt ändern,
geschieht das in der Form, dass das entsprechende Feld direkt angesprochen wird.
<?php
$arraname=array();
$feldindex=5;
/**
* Speichert den String „ein kleiner text“ im Array $arrayname im Feld mit dem Index 5
*/
$arrayname[$feldindex]="ein kleiner text";
echo $arrayname[$feldindex]; /* Ausgabe: ein kleiner text */
?>
Dieses Beispiel verdeutlicht, dass auch Variablen selbst als Indexname für ein Array Verwendung finden können.
Jedoch sollte man auf Gleitkommazahlen verzichten.
Das Fehlen von typisierten Variablen kann es erforderlich machen, dass man prüfen will,
ob eine Variable vom Inhalt her einem bestimmten Typen entspricht. Für diesen Fall
bietet PHP einige Funktionen an, allen Funktionen ist gemein, dass sie im Fall das die
Variable dem abgefragten Typen entspricht, eine 1 als Rückgabewert liefern.
- is_array
– Prüft, ob die Variable ein Array ist
- is_bool
– Prüft, ob eine Bool Variable vorliegt (Bool kann
nur 0 oder 1 annehmen)
- is_double – Alias von is_float
- is_float – Prüft, ob eine Gleitkommazahl vorliegt
- is_int – Prüft auf Ganzzahl (Int oder Integer)
- is_integer – Alias von is_int()
- is_long – Alias von is_int() (als long bezeichnet man
vorzeichenlose Ganzzahlen)
- is_null – Prüft, ob ein NULL vorliegt
- is_numeric – Prüft, ob die Variable einen Zahlenwert oder
einen Zeichenstring speichert
- is_real – Alias von is_float()
- is_string – Prüft, ob ein String vorliegt
- is_unicode – Prüft, ob ein String im Unicode Standard
vorhanden ist
Diese Liste ist nicht vollständig, sollte es aber ermöglichen auf die am häufigsten
verwendeten Variablentypen zu prüfen.
Eine kurze Liste der gebräuchlichsten Variablentypen:
- Int oder Integer – Ganzzahl mit Vorzeichen
- Long oder long int – Ganzzahl ohne Vorzeichen (nur positiv)
- Float – Gleitkommazahl
- Double – Gleitkommazahl (doppelte Genauigkeit)
- Char – Charakter oder allgemein alphanumerische Zeichen
- String – Zeichenkette aus Charaktern
Bei den Variablen, die einen reinen Zahlenwert darstellen, richtet sich die Ober- und
Untergrenze nach dem verwendeten Betriebssystem und der CPU Struktur.
Sie können auch die Variablen dynamisch erstellen. Hierzu können Sie sich das
Tutorial „Dynamische
Variablen in PHP“ ansehen.
weiter Text
ausgeben mit Php
|