Superglobale Variablen
Wie heissen alle meine Variablen? Wieviele Variablen habe ich bereits definiert? Welche 'superglobalen' Variablen gibt es? Mir kann geholfen werden!
Superglobale Variablen
$GLOBALS
Superglobals sind vordefinierte Variablen bzw. Arrays, die wie die Konstanten auch aus jeder Funktion heraus verfügbar sind. Darum erübrigt sich die Gültigkeits-Deklaration via 'global $variable;'. Ich handle die Superglobalen Variablen je nach ihrer Verwendung gesondert ab:
- $GLOBALS
- Alle momentan gültigen Variablen. Siehe weiter unten ...
- $_GET
- Variablen im Querystring übermittelt.
Variable an Seite - $_POST
- Variablen durch Formulare übermittelt.
Formular - $_COOKIE
- Im Browser abgespeicherte Variable.
Cookie - $_REQUEST
- Die drei superglobalen $_GET, $_POST und $_COOKIE nicht differenziert abfragen.
Control - $_FILES
- Dateiupload-Variablen via HTTP.
Bild hochladen - $_SESSION
- Jedem Surfer seine eigenen Variablen-Werte.
Login-Formular - $_ENV
- Umgebungsvariablen sind Variablen, die dem aktuellen Skript mittels der Environment-Methode übergeben werden.
- $_SERVER
- Pfadangaben, Dateinamen und die verschiedenen Wege, das Skript anzusprechen.
Pfade
Alle Variablen
get_defined_vars()
Folgender Code gäbe alle innerhalb des Zugriffsbereichs des Scriptes gültigen Variablen, auch die oben beschriebenen Superglobalen Variablen und die benutzerdefinierten Werte aus. Eine riesige Liste, auf die ich hier verzichte.
<?php
printf("<pre>\n%s</pre>\n", print_r(get_defined_vars(), true));
echo "<pre>\n";
var_dump(get_defined_vars());
echo "</pre>\n";
?>
Nur meine Variablen
Mit einer Funktion, welche eine Excludeliste verarbeitet, kann ich die superglobalen und andere unliebsamen Variablen von der Darstellung ausschliessen:
<?php
function getDefinedVars($varList, $excludeList)
{
$temp1 = array_values(array_diff(array_keys($varList), $excludeList));
$temp2 = array();
while (list($key, $value) = each($temp1)) {
global $$value;
$temp2[$value] = $$value;
}
return $temp2;
}
// exclude from the list, add or drop new elements
$excludeList = array('GLOBALS', '_FILES', '_COOKIE', '_POST', '_GET',
'_SERVER', 'menu', 'submenu', 'item', 'excludeList');
// test variables
$Testarray = array('Schweiz', 'Suisse', 'Switzerland');
$Testvariable = 'Marcel Biefer';
//get all variables defined in current scope
$varList = get_defined_vars();
//call the function
print "<pre>";
print_r(getDefinedVars($varList, $excludeList));
print "</pre>";
?>
Array
(
[_ENV] => Array
(
)
[_REQUEST] => Array
(
)
[teil] => php
[prefix] => http://www.lehrling.biefer.com
[teilfix] => /php
[bread] => > PHP Lehrling >>> Superglobale Variablen
[current_ordner] => variable_alle
[papi] => syntax
[id] => CMS
[id_next] => Array
(
[seite] => Cookie
[title] => Im Browser etwas speichern
[adr] => http://www.lehrling.biefer.com/php/cookie.php
[parent] => syntax
[ich] => cookie
)
[adr_next] => http://www.lehrling.biefer.com/php/cookie.php
[seite_next] => Cookie
[title_next] => Im Browser etwas speichern
[id_pre] => Array
(
[seite] => Superglobale Variablen
[title] => Alle Variablen im Gültigkeitsbereich
[adr] => http://www.lehrling.biefer.com/php/variable_alle.php
[parent] => syntax
[ich] => variable_alle
)
[seite_current] => Superglobale Variablen
[id_prev] => Array
(
[seite] => Array anschauen
[title] => Array Struktur ausgeben
[adr] => http://www.lehrling.biefer.com/php/array_print_r.php
[parent] => syntax
[ich] => array_print_r
)
[adr_prev] => http://www.lehrling.biefer.com/php/array_print_r.php
[seite_prev] => Array anschauen
[title_prev] => Array Struktur ausgeben
[Testarray] => Array
(
[0] => Schweiz
[1] => Suisse
[2] => Switzerland
)
[Testvariable] => Marcel Biefer
)
Bei den verbleibenden Variablen und Arrays handelt es sich hauptsächlich um Navigationselemente.