Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1152 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [résolu] Warning: Call-time pass-by-reference has been deprecated

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu] Warning: Call-time pass-by-reference has been deprecated

n°1910921
loulipo
Posté le 01-08-2009 à 17:13:11  profilanswer
 

Bonjour,
 
Voilà j'ai un soucis qui se présente sur une page d'un site. Le message d'erreur est le suivant :  
 
Warning: Call-time pass-by-reference has been deprecated in /home/www/737f1bcd492f37c0dc1e53be62b34934/web/actualites/index.php on line 136
 
Alors après avoir fait des petites recherches j'ai cru comprendre qu'il fallait enlever & sur la ligne en question :  
 

Code :
  1. function sql_to_array($req,$function = '') {
  2.   $return_array = array();
  3.   while ($row = @mysql_fetch_array($req)) {
  4.    if (!empty($function)) {
  5.     call_user_func($function, &$row);
  6.    } 
  7.    array_push($return_array, $row);
  8.   }
  9.   @mysql_free_result($req);
  10.   return $return_array;
  11. }


Ce que j'ai fait mais ensuite, je n'obtiens même plus le message d'erreur. Page blanche. Bon j'y connais rien du tout mais il semblerait que ce genre de code soit dépassé.  
J'ai vu aussi que ce message s'accompagne souvent d'une référence au php.ini qu'il faut modifier. Mais moi rien du tout. De toute façon j'y ai pas accès.
 
A savoir que ce problème survient après changement d'hébergeur. Il fonctionne avec php5. Le précédent je ne sais pas où il en était. C'est peut-être aussi dû à ça ?  
 
Merci par avance pour les infos que vous pourriez m'apporter.


Message édité par loulipo le 02-08-2009 à 14:21:58
mood
Publicité
Posté le 01-08-2009 à 17:13:11  profilanswer
 

n°1910928
jonas3
Posté le 01-08-2009 à 17:46:12  profilanswer
 

ben le message d'erreur est clair: tu peux plus passer de variable par référence dans call_user_func, passes une copie à la place:
 

Code :
  1. call_user_func($function, $row);


---------------
http://petitjonas.blogspot.com/
n°1910971
loulipo
Posté le 02-08-2009 à 11:57:39  profilanswer
 

Merci à toi jonas3. C'est bien ce que j'avais tenté de faire. Sans résultats. Merci quand même en tout cas.
 
Bon comme j'avais un autre problème sur une autre page résolu en changeant les droits sur un fichier j'ai tenté la même chose puisque les deux soucis sont apparus en même temps au changement d'hébergeur... Et c'est bon tout roule. Suis bien contente.

Message cité 1 fois
Message édité par loulipo le 02-08-2009 à 14:23:56
n°1962194
close2me
Posté le 02-02-2010 à 09:48:52  profilanswer
 

Bonjour,
J'ai le même problème, puorriez vous me dire ce que vous avez effectué pour résoudre le votre ?
merci par avance.
 

loulipo a écrit :

Merci à toi jonas3. C'est bien ce que j'avais tenté de faire. Sans résultats. Merci quand même en tout cas.
 
Bon comme j'avais un autre problème sur une autre page résolu en changeant les droits sur un fichier j'ai tenté la même chose puisque les deux soucis sont apparus en même temps au changement d'hébergeur... Et c'est bon tout roule. Suis bien contente.


n°1962201
stealth35
Posté le 02-02-2010 à 09:59:30  profilanswer
 

faut enlever le '&' dans le parametre

n°2018013
Ricco
Retour au pays
Posté le 19-08-2010 à 18:28:23  profilanswer
 

up
 
J'ai aussi ce truc mais la solution d'enlever le '&' me parait hasardeuse ... Quelqu'un sait-il pourquoi c'est déprécié ?  
 
On est obligé de passer les paramètres par copie ou au contraire tout est par référence maintenant ??


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
n°2083534
messius
Posté le 21-06-2011 à 09:55:57  profilanswer
 

Ricco a écrit :

up
 
J'ai aussi ce truc mais la solution d'enlever le '&' me parait hasardeuse ... Quelqu'un sait-il pourquoi c'est déprécié ?  
 
On est obligé de passer les paramètres par copie ou au contraire tout est par référence maintenant ??


 
Je viens de rencontrer ce problème.
La déclaration de référence dans la liste des paramètres d'une fonction est maintenant déprécié, mais attention SEULEMENT sa déclaration !!!
Effectivement il faut laisser le & lors de l'appel de cette dernière sinon on risque d'avoir un comportement non souhaité (passage par copie sinon ).
 
ex:  
 
function Recurs($param)
{
...
Recurs(&$param[$key]);
...
}
 
Recurs(&$tab);
 
Pour tous ceux qui, comme moi, cherche à comprendre cette dépréciation et s'y conformer.

n°2083582
messius
Posté le 21-06-2011 à 11:55:57  profilanswer
 

Oups...
 
C'est l'inverse, il faut retirer le & dans l'appel et le conserver dans la définition de la fonction.
 
 :pt1cable:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [résolu] Warning: Call-time pass-by-reference has been deprecated

 

Sujets relatifs
Problème Shutdown time[Résolu] Un bouquin en ASP ?
VB Lancer un .bat tout juste créé [Resolu]socket pas thread safe sous linux ? si en fait (resolu)
[RESOLU] erreur pendant le chargement un fichier XML[Résolu]Bouton <Précédent> <Suivant> Pagination
[Java] interférences entre OpenDialog et impression de jFrame (résolu)[RESOLU] Problème de requête et mysql_num_rows
[Resolu][CSS] Div l'une à coté de l'autre[VBA Excel] garder la mise en forme dans une textbox [RESOLU]
Plus de sujets relatifs à : [résolu] Warning: Call-time pass-by-reference has been deprecated


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR