PHP - Grundlagen - Funktionen - Geltungsbereich von Variablen
1. Feinheiten
Beim Abschnitt Konstanten hab ich euch ja schon ein wenig darauf vorbereitet. Und was nun kommt ist gaaanz wichtig. Also lest das hier bitte genau durch, sonst gibt's einen hinter die Löffel.
2. Variablen außerhalb von Funktionen
Auf die kann man jederzeit zugreifen. Aber nicht in Funktionen.
<?php
$bla = 'blubb';
function machWas()
{
// Funzt net
echo $bla;
}
machWas();
// das schon
echo $bla;
?>
3. Variablen innerhalb von Funktionen
Sind nur innerhalb der Funktion verfügbar. Darum werden sie auch als lokal bezeichnet. Außerdem wird der Wert bei Änderungen nicht übernommen.
<?php
function machWas()
{
$bla = 'blubb';
echo $bla;
$bla = 'laber';
}
// Ergibt beides 'blubb'
machWas();
machWas();
?>
Globale Verfügbarkeit
Das habe ich schon erwähnt. Man gibt sie mit return
zurück. Und in der Referenzvariablen hat man dann den entsprechenden Wert.
<?php
function blubber()
{
$bla = 'blubb';
return $bla;
}
$laber = blubber();
echo $laber;
?>
4. Sonderformen
Globale Variablen in Funktionen
Dazu wird eine Variable mit global
ausgezeichnet. Dann kann man auch innerhalb einer Funktion auf sie zugreifen. Aber! Für
diesen Hinweis hätte ich eigentlich richtig Dresche verdient. Denn wer damit arbeitet, kommt ganz schnell in des Teufels Küche. Also
schaut es euch an und vergesst es sofort.
<?php
$bla = 'blubb';
function machWas()
{
global $bla;
echo $bla;
}
machWas();
?>
Statische Variablen
Damit kann man das Problem umgehen, dass bei Funktionen geänderte Werte nicht behalten werden. Ich persönlich habe damit aber noch nie gearbeitet.
<?php
function machWas()
{
static $bla = 0;
echo $bla;
$bla = 5;
}
// Ergibt 0
machWas();
// Ergibt 5
machWas();
?>
5. Konstanten in Funktionen
... sind erst nach dem erstmaligen Aufruf der Funktion global verfügbar. Vorher nicht. Aber wenn ihr mich fragt, sie sind auch nicht dazu gedacht, ihr trauriges Dasein in Funktionen zu fristen.
<?php
function machWas()
{
define ('BLA', 'blubb');
}
machWas();
echo BLA;
?>
zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt