Hauptmenü

Untermenü

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