2013-05-25 2 views
0

Après avoir mis à jour mon php vers 5.3, cette erreur a commencé à apparaître.Normes strictes: seules les variables doivent être transmises par référence dans PHP 5.3

normes strictes: Seules les variables doivent être transmises par renvoi dans /var/www/site/Functions/Cases.php en ligne 108 normes strictes: Seules les variables doivent être passés par référence dans/var/www/site/fonctions/Cases.php en ligne 102 normes strictes: Seules les variables doivent être transmises par renvoi dans /var/www/site/Functions/Cases.php en ligne 102

Je voudrais savoir comment y remédier!

function CaseID ($id) { 
       return array_pop (explode ('-' , $id)) ; 
     } // line 102 

     function GetCaseByID ($caseID) { 
      $db = Connection ('db_misc') ; 
      $sql = $db->prepare ('SELECT * FROM `t_cases` WHERE cid = :cid') ; 
      $sql->bindParam (':cid' , CaseID ($caseID) , PDO::PARAM_INT) ; // line 108 
      $sql->execute () ; 
      return $sql->fetch (PDO::FETCH_ASSOC) ; 
     } 
+2

'PDOStatement :: bindParam' prend une référence * à une variable. Utilisez 'bindValue' à la place. (En outre, regardez toutes les questions existantes "seules les variables doivent être transmises par référence" dans la barre latérale.Beaucoup d'explications là-bas.) – DCoder

+0

Merci! Désolé pour cela! J'ai vérifié beaucoup de messages, mais je suis toujours débutant et je n'ai pas pu trouver un exemple avec la fonction donc j'étais un peu confus désolé! Merci de votre aide! –

Répondre

1
function CaseID ($id) { 
      $array = explode ('-' , $id); 
      return array_pop ($array) ; 
    } 

(L'explication est déjà dans l'erreur stricte :))

+0

Merci beaucoup! Oui, je les ai tous vérifiés! Mais je suis toujours un débutant n'était pas moi qui a fait ce site était mon ami et il me l'a donné donc j'apprends le PHP, donc je n'ai pas pu trouver un exemple avec la fonction donc j'étais un peu confus! Désolé pour cela! Et merci encore! –

Questions connexes