$GLOBALS
$GLOBALS
(PHP 4, PHP 5, PHP 7, PHP 8)
$GLOBALS — Refererar till alla variabler som är tillgängliga i globalt omfång
Beskrivning
En associativ array som innehåller referenser till alla variabler som för närvarande är definierade i skriptets globala omfång. Variabelnamnen är nycklarna i arrayen.
Exempel
Exempel #1 $GLOBALS-exempel
<?php function test() { $foo = "lokal variabel"; echo '$foo i globalt omfång: ' . $GLOBALS["foo"] . "\n"; echo '$foo i nuvarande omfång: ' . $foo . "\n"; } $foo = "Exempelinnehåll"; test(); ?>
Ovanstående exempel kommer att ge följande resultat:
$foo i globalt omfång: Exempelinnehåll $foo i nuvarande omfång: lokal variabel
Varning: Från och med PHP 8.1.0 stöds inte längre skrivåtkomst till hela `$GLOBALS`-arrayen:
Exempel #2 Skrivning av hela $GLOBALS kommer att resultera i fel
<?php // Genererar ett kompileringstidfel: $GLOBALS = []; $GLOBALS += []; $GLOBALS =& $x; $x =& $GLOBALS; unset($GLOBALS); array_pop($GLOBALS); // ...och alla andra skriv-/läs-skriv-operationer på $GLOBALS ?>
Noteringar
Notera: Detta är en "superglobal", eller automatisk global, variabel. Detta innebär helt enkelt att den är tillgänglig i alla omfång genom ett skript. Det finns inget behov av att använda `global $variable;` för att komma åt den inom funktioner eller metoder.
Notera: Variabeltillgänglighet Till skillnad från alla andra superglobals har `$GLOBALS` i princip alltid varit tillgänglig i PHP.
Notera: Från och med PHP 8.1.0 är `$GLOBALS` nu en skrivskyddad kopia av den globala symboltabellen. Det vill säga, globala variabler kan inte ändras via dess kopia. Tidigare undantogs `$GLOBALS`-arrayen från PHP-arrayers vanliga beteende att behandlas efter värde, och globala variabler kunde ändras via dess kopia.
<?php // Före PHP 8.1.0 $a = 1; $globals = $GLOBALS; // Till synes en kopia efter värde $globals['a'] = 2; var_dump($a); // int(2) // Från och med PHP 8.1.0 // detta ändrar inte längre $a. Det tidigare beteendet bröt mot värdesemantiken. $globals = $GLOBALS; $globals['a'] = 1; // För att återställa det tidigare beteendet, iterera över dess kopia och tilldela varje egenskap tillbaka till $GLOBALS. foreach ($globals som $key => $value) { $GLOBALS[$key] = $value; } ?>
Sidslut
Orginalhemsidan på Engelska : https://www.php.net/manual/en/reserved.variables.globals.php
PHP
Språkreferens
Språkreferens#Fördefinierade_Variabler
Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Datorhjälp som har sponsrat Linux.se med webserver.