les variables précédées d'un caractère

Eléphant du PHP | 108 Messages

23 mars 2006, 11:01

bonjour,

j'ai rencontré sur divers programmes php que des variables pouvait etre précédées d'un caractère mais certains je ne sais pas ce qu'il siginifie

exemples:
&$variable
@$variable
$$variable


et d'autres peut être.N'hésitez pas en rajouter :D

Donc j'aimerai une petite explication pr bien comprendre
:roll:

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 mars 2006, 11:20

$$variable correspond à la notation complexe de php (parce qu'elle permet l'utilisation d' expressions complexes, pas parcequ'elle est obscure ;))

Elle te permet d'utiliser le contenu de $variable comme s'il s'agissait d'une variable, cela revient à ${$variable}. Le mieux étant un exemple :
$resultat = "toto";
$variable = "resultat";
echo $$variable; // affiche "toto". 
Pour faire simple : $$variable = ${$variable} = ${"resultat"} = $resultat = "toto"

Pour les autres, je ne les connais pas (pour moi le "@" est juste utilisé avant une fonction pour qu'elle n'affiche pas les messages d'erreur ou d'avertissement éventuels qu'elle peut générer). Je laisse donc le soin aux autres d'y répondre ;)

Eléphant du PHP | 108 Messages

23 mars 2006, 11:26

le @

je l'ai vu sur
switch (@$_POST['button'])
 case " xx"
.
.
.
et pour le &
<?php
set_magic_quotes_runtime(0);
# On n'exécute la boucle que si nécessaire
if(get_magic_quotes_gpc() == 1){

# Définition de la fonction récursive.
// ICI
function remove_magic_quotes(&$array)
{
   foreach($array as $key => $val){

       # Si c'est un array, recurssion de la fonction, sinon suppression des slashes
       if(is_array($val)){
           remove_magic_quotes($array[$key]);
       } else if(is_string($val)){
           $array[$key] = stripslashes($val);
       }
   }
}

# Appel de la fonction pour chaque variables.
# Notes, vous pouvez enlevez celle d'on vous ne vous servez pas.
# Personnellement, j'enlève $_REQUEST et $_FILES

remove_magic_quotes($_POST);
remove_magic_quotes($_GET);
remove_magic_quotes($_REQUEST);
remove_magic_quotes($_SERVER);
remove_magic_quotes($_FILES);
remove_magic_quotes($_COOKIE);
}
//Ce script est à appeler avant tout autre action, via la fonction require() 
?>