Fonction PAssage par Référence

[Résolu]
Signaler
Messages postés
2380
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
-
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
-
Bonjour,

Je reprends un ancien site avec des passages de paramètres par référence dans mes fonctions.

J'obtiens l'erreur:

- Call-time pass-by-reference has been deprecated

Je ne désire pas toucher au PHP.ini

que puis-je faire pour éviter cela ?  Pourtant c'est bien pratique le passage par référence..

Merci de votre aide.

S.

6 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Encore une fois, je n'ai pas dit ça...
Je vais réexpliquer de façon plus claire, avec un exemple :
<?php
function test (& $maVar) {
    $maVar ++;
}

$a= 1;
test ($a);
echo $a;
?>

Ici, ok.
<?php

function test ($maVar) {

    $maVar ++;

}


$a= 1;

test (& $a);

echo $a;

?>
Ici, tu auras ton warning.

<?php


function test (& $maVar) {


    $maVar ++;


}



$a= 1;


test (& $a);


echo $a;


?>
Ici aussi.
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Hello,

c'est un changement de version de PHP.
Le passage par référence dans les objets notamment est maintenant implicite. Ce n'est plus une copie. Du coup & $maVar ne sert plus à rien.
Bref, supprime les & là où tu as ce warning.
Messages postés
2380
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
Donc si j'ai bien compris il y a écrasement de la variable si j'ai la
maladresse de nommer deux variables à espace différent mais de même nom
??

pas besoin de 'global' ou autres ??

je trouve ça bizarre..

S.
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Je n'ai pas dit que le passage par référence n'existait plus. J'ai dit que dans certains cas, il était déprécié.
Montre plutôt un exemple de code où tu as ce warning.
Messages postés
2380
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
C'est bête à dire, mais le mot Déprécié me donne des boutons.. De
mauvais souvenirs de fonctions à recoder durant la nuit en 4ème vitesse
en Java... Donc est-ce le passage par référence va disparaitre ?
sera-t-il présent sous une autre forme ? Le but n'est pas de débugger
mon code mais de comprendre un peu ce ki va se passer dans le futur..

Je veux plus reprendre du vieux code pour le corriger... et en plus
encore moins celui ke je suis en train de faire à l'heure actuelle.

S.
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3