Ámbit de les variables

L’àmbit d’una variable és el context dins del qual està definida.


Variables globals

Les variables globals están disponibles en l'ámbit global, i en tots els ámbits a través de l'array $GLOBALS.

<?php
$a = 1;
$b = 2;

echo $GLOBALS["a"];

include

L'àmbit d'una variable tambè inclou els fitxers que s'integrin al script mitjançant les funcions include i required.

Per exemple, en aquest script la varible $a estarà disponible dins de l'execuciṕ de b.inc.

index.php

<?php
$a = 1;
include 'cap.php';
?>

cap.php

echo $a;

Equival a:

<?php
$a = 1;
echo $a;
?>

ACTIVITAT

Si teniu un fitxer comú cap.php, com li passerieu el títol que ha de mostrar la pàgina? Feu-ho.


Variables locals

Qualsevol variable que s’utilitza dins d’una funció està limitada per defecte a l’àmbit local de la funció local.

Per tant, aquest script no produirà cap sortida:

<?php
$a = 1; /* àmbit global */ 

function test()
{ 
    echo $a; /* reference to local scope variable */ 
} 

test();
?>

Accés a una variable global desde un ámbit local

Si vols utilitzar una variable global dins d'una funció, pots utilitza l'array $GLOBALS.

Tamè pots declarar la variable com a globalperquè PHP sàpiga que t'estàs referint a una variable declarada en l'àmbit global.

<?php
$a = 1;
$b = 2;

function Sum()
{
    global $a, $b;

    $b = $a + $b;
} 

Sum();
echo $b;
?>

ACTIVITAT

Comproba que el resultat serà 3.


A més, les variables superglobals no necessiten que es declarin com a global per poder ser accedides dins d'un àmbit local.

<?php
function test()
{
    echo $_POST['name'];
}
?>