Fatal error: Only variables can be passed by reference

Signaler
Messages postés
167
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
24 mai 2010
-
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
bONjour, j'ai une erreur Only variables can be passed by reference
sur mon if, qui semble venir de la fonctionvb()
je ne comprends pas pourquoi, ca marche tres bien en local mais pas en ligne

<?
if ( vb($_SESSION['utilisateur']['type']) != "1" )
{
// affichage
}



function vb(&$var, $default="") { // Variable blanche
/* if $var n'est pas défini, retourne $default, sinon retourne $var */
 return isset($var) ? $var : $default;
}
?>


merci de votre aide

3 réponses

Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
isset renvoie un boolean deja ... pas un entier!
ensuite enleve ton & sur cette ligne :function vb(&$var, $default="") { // Variable blanche
et essaye à nouveau
et enfin la doc c'est pas fait pour les chiens et n'est pas indispensable sauf si tu l'as connais par coeur
http://de3.php.net/manual/fr/function.isset.php
--------------------------------------------------------------------------------------------------
         Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Hello,

je ne comprends pas l'intérêt de ton code.
Tu ne modifies pas $var.
Tu renvoies sa valeur, ou la valeur de $default  (vide dans ton exemple) si $var n'existe pas.  Pourquoi donc veux-tu la passer par référence, ta $var ?? Pourquoi veux-tu donc la passer par référence ?
Surtout que $_SESSION est une globale...
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Ceci dit, parce que je n'ai pas répondu à ta question; tu utilises quelle version de php ?