scope des variables
La visibilité (ou "scope") d'une variable dépend de sa première utilisation. Pour une fonction *:
<?php
$x = 5;
echo $x; //affiche "5"
test();
echo $x; //affiche "5" car ce $x-ci n'est plus celui de la fonction test()
function test()
{
$x = 7;
echo $x; //affiche "7" car $x appartient à la fonction test()
}
Un autre ex:
<?php
$x = 5;
echo $x; //affiche "5"
$objet_test = new Test(7);
echo $objet_test->x; //affiche "7"
class Test
{
public $x;
public function __construct($valeur)
{
$this->x = $valeur;
}
}
Une variable n'est visible que dans la fonction dans laquelle elle a été définie
<?php
$x = 5;
echo $x; //affiche "5"
test(); //affiche une erreur
echo $x; //affiche "5"
function test()
{
echo $x; //illégal car $x n'est pas défini dans la fonction test()
}
* Il existe cependant un mot clef "global" permettant d'outrepasser cette restriction :
<?php
$x = 5;
echo $x; //affiche "5"
test(); //affiche "5"
echo $x; //affiche "5"
function test()
{
global $x;
echo $x; //reprend le "$x" du scope global
}