Anzeige
Tutorialbeschreibung

PHP - Teil 05 - Variablen deklarieren

PHP - Teil 05 - Variablen deklarieren

Zu den wichtigsten Eigenschaften von Programmier- und Skriptsprachen gehört die Fähigkeit, Daten zu verwalten. Es empfiehlt sich immer, Variablen beim Definieren einen bekannten Wert zuzuweisen. Dies wird als Initialisieren einer Variablen bezeichnet. Dieses Initialisieren erlaubt die Überwachung des Variablenwerts und dessen möglicher Veränderung.

Variablen bestehen aus drei Teilen:
  • dem Variablennamen
  • dem Speicherbereich
  • dem Wert
Gespeichert werden die Werte der Variablen im Arbeitsspeicher des Rechners/Servers, auf dem der PHP-Code ausgeführt wird. Trifft ein PHP-Interpreter auf eine Variablendefinition, reserviert er automatisch im Arbeitsspeicher einen entsprechenden Speicherbereich und stellt zwischen diesem und der Variablen eine Verbindung her. Wird dann innerhalb des PHP-Codes der Wert der Variablen abgefragt, liest der Interpreter den aktuell im Arbeitsspeicher hinterlegten Wert aus und liefert diesen zurück.

Sobald der Variablen ein neuer Wert zugewiesen wird, schreibt der Interpreter diesen in den Speicherbereich der Variablen. Dabei wird der alte Variablenwert automatisch gelöscht.

Die beschriebenen Vorgänge im Arbeitsspeicher laufen automatisch ab. Als PHP-Entwickler muss man sich darum also nicht kümmern.

Variablen erkennt ihr in PHP an dem vorangestellten Dollarzeichen:
$Name


Die Bindung eines Namens an einen Wert wird über den Zuweisungsoperator vorgenommen, der – übrigens nicht nur in PHP – durch ein Gleichheitszeichen repräsentiert wird. Eine gültige Zuweisung sähe folgendermaßen aus:

$Name = Wert;


Anhand des Namens kann man den Wert einer Variablen auslesen oder neu setzen. Genau das führt zu der Frage, wann denn der Interpreter eigentlich weiß, wann man einen Wert auslesen oder eben neu setzen will?

Nach der Deklaration ist der Variablenname immer gleichbedeutend mit dem Variablenwert. Lediglich, wenn der Variablenname auf der linken Seite einer Wertzuweisung steht, handelt es sich um den Speicherbereich, in dem der Wert des rechten Teils der Variablendefinition abgelegt ist.
 

 
Die Deklaration und der anschließende Einsatz einer Variablen ist denkbar einfach. Das folgende Beispiel zeigt eine typische Anwendung:
<?php
$welt = 'Hallo, Welt!';
echo $welt;
?>

Hier wird die Variable $welt deklariert. Dieser Variablen wird als Wert die Zeichenkette Hallo, Welt! zugewiesen. Um die Variable auszugeben, wird auf echo zurückgegriffen.

Bilder



 
Gültige Variablennamen werden mit einem Dollarzeichen eingeleitet. Daran muss sich entweder ein Buchstabe oder ein Unterstrich anschließen. Hinter einer dieser beiden Anfangszeichen kann sich dann eine beliebige Folge von Buchstaben, Zahlen und dem Unterstrich anschließen.

Hier einige Beispiele für gültige und ungültige Variablennamen:
<?php
$welt = 'Hallo, Welt'; //das ist ein gültiger Name 
$_welt = 'Hallo, Welt'; //das ist ein gültiger Name
$2welt = 'Hallo, Welt'; //das ist ein ungültiger Name
?>

Es wird explizit zwischen Groß- und Kleinschreibung unterschieden. Somit sind die folgenden Variablen also nicht identisch:
<?php
$ziffer = 31 
$Ziffer = 45 //verändert den Wert von $ziffer nicht
$ziffer = $Ziffer //das verändert den Wert von $ziffer
?>

Die Variablen $ziffer und $Ziffer sind also etwas anderes.

Werte lassen sich auf zwei verschiedene Arten zuweisen. Im vorherigen Beispiel wird durch die Anweisung
$ziffer = $Ziffer
der Variablen $ziffer der Wert der Variablen $Ziffer zugewiesen. Diese Methode nennt sich pass by value. Zwar kommt es in der Programmierung relativ häufig vor, dass eine Variable den Wert einer anderen Variablen annimmt, das ist aber nicht die einzige Möglichkeit. Ebenso kann auf Basis eines Werts auch ein neuer berechnet werden.
<?php
$gesamt = 500;
$anteil = 100;
$prozent = ($anteil * 100)/$gesamt;
echo $prozent;
?>

In diesem Beispiel wird die Variable $aktanteil mit dem Faktor 100 multipliziert. Anschließend wird dieses Ergebnis durch den Wert der Variablen $gesamt dividiert.

 
Das Ergebnis dieser Operation wird in der Variablen $prozent gespeichert und ausgegeben.

Bilder



 
Zwei Variablen können auch unabhängig voneinander sein. Verwendet wird dafür die Methode pass by reference. Auch hierzu wieder ein Beispiel:
<?php
$wert1 = 20;
$wert2 = &$wert1;
echo $wert2;
echo "<br />";
$wert1 = 35;
echo $wert2;
?>

Achtet auf den kleinen Syntaxunterschied. Hier werden durch den Einsatz des kaufmännischen UND (&) die beiden Variablen $wert2 und $wert1 logisch miteinander verknüpft. Eine Änderung am Wert der Variablen $wert1 beeinflusst auch Variable $wert2.

Bilder



 

Gültigkeitsbereiche von Variablen

Der Gültigkeitsbereich einer Variable sagt aus, wo eine Deklaration und eine Wertzuweisung für diese Variable gelten. PHP ist dabei besonders anwenderfreundlich. Denn der Einsatz von Variablen führt auch dann nicht zu Fehlermeldungen, wenn diese zuvor nicht deklariert wurden.

So würde Folgendes eben auch dann nicht zu einer Fehlermeldung führen, wenn die Variable $ausgabe zuvor nicht deklariert wurde.
echo 'Mein Name ist ',$ausgabe,'.';

Nicht deklarierte Variablen besitzen je nach Typ entweder keinen Inhalt oder eben 0. Im vorherigen Beispiel sähe die Ausgabe folgendermaßen aus:

Bilder



 
Prinzipiell wird zwischen zwei Gültigkeitsbereichen unterschieden: global und lokal. Alle im globalen Bereich deklarierten Variablen sind innerhalb des gesamten Skripts/Programms verfügbar. Das gilt also auch für sämtliche Funktionen. Anders sieht es bei den lokalen Variablen aus. Diese sind tatsächlich nur innerhalb einer Funktion, von Objekten oder Includes verfügbar.

Das folgende Beispiel demonstriert die verschiedenen Gültigkeitsbereiche innerhalb eines PHP-Skripts:
<?php
//Das ist der globale Bereich mit der globalen Deklaration.
$name = 'Michael';           
function gibNameaus(){
//Das ist ein lokaler Bereich; die Variable ist hier unbekannt.
 echo "lokaler Bereich: $name<br/>"; 
//Die Variable wird lokal deklariert: Die Variable ist jetzt bekannt.
 $name = 'Michael';         
 echo "lokaler Bereich: $name<br/>"; 
}

echo "globaler Bereich: $name<br/>"; 
gibNameaus();             
echo "globaler Bereich: $name<br/>"; 
?>


 
Der Wert von $name ist global gültig; auf ihn kann also auch innerhalb der Funktion zugegriffen werden. Warum aber ist sie dann beim ersten Aufruf innerhalb der Funktion nicht bekannt?

Bilder


 
 
Denn wie zuvor beschrieben, sollten globale Variablen doch innerhalb von Funktionen bekannt sein. Um das zu erreichen, muss man dem Interpreter explizit mitteilen, dass die Variable nicht innerhalb des lokalen Bereichs neu deklariert werden muss, sondern stattdessen auf eine im globalen Bereich vorhandene Variable zugegriffen werden kann.
global $name;
Die gesamte Anwendung sieht dann folgendermaßen aus:
<?php
//Das ist der globale Bereich mit der globalen Deklaration.
$name = 'Michael';           
function gibNameaus(){
global $name;
//Das ist ein lokaler Bereich; die Variable ist hier unbekannt.
 echo "lokaler Bereich: $name<br />";
//Die Variable wird lokal deklariert: Die Variable ist jetzt bekannt.
 $name = 'Michael';         
 echo "lokaler Bereich: $name<br />"; 
}
echo "globaler Bereich: $name<br />";
gibNameaus ();            
echo "globaler Bereich: $name<br />"; 
?>

Fazit

In diesem Tutorial habt ihr gesehen, wie sich Variablen deklarieren lassen und wie man auf deren Werte zugreifen kann. PHP hält hinsichtlich der Variablen noch einige Besonderheiten bereit. Welche das sind, wird im zweiten Teil dieses PHP-Variablen-Tutorials gezeigt.

DVD-Werbung
Kommentare
Achtung: Du kannst den Inhalt erst nach dem Login kommentieren.
Portrait von spirit010
Portrait von franzg
  • 14.05.2017 - 15:24

Vielen Dank für die Infos!

Portrait von tipsi_95
  • 07.10.2016 - 13:13

Vielen Dank, tolles Video.

Portrait von dmtw2107
  • 16.11.2013 - 09:47

verständlich und toll erklärt danke für das tutorial

Portrait von bzloeffler
  • 05.07.2011 - 08:51

Hallo

finde die Tutorials richtig gut, hab jedoch einen Fehler gefunden.

Zitat:


In diesem Beispiel wird die Variable $aktanteil mit dem Faktor 100
multipliziert. Anschließend wird dieses Ergebnis durch den Wert der Variablen
$gesamt dividiert.

$aktanteil sollte doch $anteil sein und $gesamt ist doch $prozent.

Portrait von EwaRoma
  • 27.02.2011 - 10:49

wie erkenne ich ob es sich um eine globale oder um eine lokale Variable handelt, wenn beide gleichnamig sind?
Welchen Sinn (Vorteil) kann es haben die Variablen gleich zu nennen? Ist es in der Praxis oft der Fall?

Portrait von dernorb
  • 02.03.2011 - 10:57

man erkennt nicht direkt was lokale und globale Variablen sind - nur daran das man bei der deklaration "globle" davor schreibt.

Portrait von Deemar
  • 24.02.2011 - 18:41

ein weiterer Fehler:

Deklariert wird die Variable "$name", jedoch wird in der echo-Ausgabe "$namen" verwendet, also die Mehrzahl!

Alternative Portrait

-versteckt-(Autor hat Seite verlassen)

  • 22.02.2011 - 22:03

$ziffer = $Ziffer //das verändert den Wert von $Ziffer

es verändert den Wert von $ziffer...$Ziffer behält seinen Wert

Portrait von fneurieser
  • 20.02.2011 - 16:39

Also da muß ich skiron rechtgeben, man hätte den zweiten Teil ruhig in diesen hier packen können.

Alternative Portrait

-versteckt-(Autor hat Seite verlassen)

  • 19.02.2011 - 10:46

Alles gut und sehr verständlich erklärt!
Ich weiss nur nicht warum man nun aus dem Thema 2 Tutorials machen muss. Ich finde obige Lernmenge ist nicht so riesig, da hätte noch mehr rein gekonnt!

x
×
×