La portée des variables diffère selon son emplacement au sein du code PHP dans une page web.
Les variables peuvent avoir une portée globale si elles sont définies en dehors d'une fonction. Dans le cas contraire, elles seront locales.
<?php
$variable_globale = valeur;
function Fonction()
{
$variable_locale = valeur;
}
?>
Les fichiers inclus dans un autre peuvent non seulement, accéder aux variables globales définies dans la page hôte, mais également les modifier.
<?php $variable_globale = valeur; include "fichier.inc"; ?> <!-- fichier.inc --> <?php $variable_globale = nouvelle_valeur; ?>
Les variables globales peuvent être utilisées dans une fonction à condition de déclarer à nouveau les variables dans la fonction avec le mot-clé global ou en utilisant le tableau associatif prédéfini $GLOBALS.
$var_glo = valeur;
function Fonction()
{
global $var_glo;
$var_glo++;
}
function Autre_Fonction()
{
$GLOBALS["var_glo"]++;
}
Par ailleurs, des variables peuvent être déclarées statiques dans une fonction afin de les utiliser récursivement dans la fonction elle-même.
function Fonction()
{
static $variable = 0;
if($variable <= 0)
{
Fonction();
}
$variable++
}
Dans cet exemple, si la variable n'était pas statique, sa valeur resterait toujours nulle puisque son initialisation à zéro annulerait son incrémentation.
Exemple [voir]<?php
$personne = '';
$sexe = array('Monsieur','Madame','Mademoiselle');
function fiche($nom, $prenom)
{
global $sexe;
global $personne;
$personne = $sexe[0] . ' ' . $prenom . ' ' . $nom;
}
$champ1 = 'Lemestre';
$champ2 = 'Jean-Christophe';
fiche($champ1, $champ2);
echo $personne;
?> |