erreur php

Sergio36
Invité n'ayant pas de compte PHPfrance

18 août 2014, 10:21

Quelqu'un pourrait-il m'expliquer le code d'erreur suivant :
[ 8192] Call-time pass-by-reference has been deprecated

merci d'avance

Serge

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 7120 Messages

18 août 2014, 11:23

Je dirai que tu utilises un script PHP qui a été développé il y a plus de 10 ans :
:arrow: Félicitations, il est temps de faire du refactoring ! :-)

En gros, dans les anciennes versions de PHP, il était possible de passer des variables par référence à une fonction en ajoutant un "&" devant le nom d'une variable en paramètre d'une fonction.

+ d'infos :
http://php.net/manual/fr/language.references.php
http://php.net/manual/fr/ini.core.php#i ... compliance
Quand tout le reste a échoué, lisez le mode d'emploi...

Avatar de l’utilisateur
Mammouth du PHP | 2281 Messages

19 août 2014, 08:42

Exactement, on pouvait et on peut toujours passer une variable par référence (les modifications de cette variable effectuées dans la fonction sont conservées au sortir de la fonction)
Ce qui change c'est la syntaxe:
avant
<
?php
function foo($var) {
  $var++;
}
$a=5;
foo (&$a);
// $a vaut 6 maintenant
?>
maintenant
<?php
function foo(&$var) {
  $var++;
}
$a=5;
foo ($a);
// $a vaut 6 maintenant
?>
Il te faut donc modifier la déclaration de cette fonction et chercher tous ses appels....
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD