pcmanprogrammeur
Messages postés126Date d'inscriptiondimanche 27 mars 2005StatutMembreDernière intervention16 octobre 2010
-
27 févr. 2006 à 12:05
pcmanprogrammeur
Messages postés126Date d'inscriptiondimanche 27 mars 2005StatutMembreDernière intervention16 octobre 2010
-
27 févr. 2006 à 14:25
Bonjour!
Voici à quelques choses près ce que je veux faire :
<?
function test($texte)
{
$texte="essai";
}
$test="ok";
test($test);
echo $test;
?>
ET ALORS LA VOILA LE PROBLEME !!!
Il m'affiche "ok" au lieu de "test". Comment rectifier ça???
Le but est qu'après je puisse passé un objet en paramètres.
Voilà j'espère avoir été clair.
A bientôt.
2 choses : dans n'importe quel langage, les variables ont une portée.
Dans le cadre de fonctions, une variable déclarée dans une fonction voit sa portée limitée à la fonction.
Bref :
<?php
fonction declareVar () {
$var = 'bla';
}
declareVar ();
echo $var; // provoque une erreur : $var n'est pas définie...
?>
De même avec ton test, tu passes ta variable, certes, mais ta fonction utilise une COPIE de la variable.
On en vient aux passagres par copie et par référence...une copie, est, comme son nom l'indique, une copie lol...ref, ce n'est pas l'original.
Une référence EST l'original (même emplacement mémoire).
donc tu peux faire ceci :
<?
function test(& $texte)
{
$texte="essai";
}
$test="ok";
test($test);
echo $test;
?>
pcmanprogrammeur
Messages postés126Date d'inscriptiondimanche 27 mars 2005StatutMembreDernière intervention16 octobre 2010 27 févr. 2006 à 13:54
Merci à tous pour votre spontanéité.
C'est vrai que j'ai pas pensé. Pourtant, j'y suis habitué en C mais c'est que je pensais pas que cela puisse s'appliquer au PHP.
En tout cas merci beaucoup.
Je n'ai plus qu'à tester pour mon objet et si ça ne marche pas je vous refais appel.
A+.
Vous n’avez pas trouvé la réponse que vous recherchez ?