par
Ryle » 19 déc. 2006, 12:51
C'est ce qui est bien avec le SQL, on le code comme on le parle
Concernant ton problème de fonction, je suis pas certain qu'il soit judicieux de faire une fonction qui appelle juste une fonction avec les mêmes arguments (et dont le nom est plus court qui plus est

)
autant directement faire addslashes() que ajout_slash() à mon avis...
Quoi qu'il en soit, ta fonction se contente de créer une variable $var (interne à la fonction) et de lui affecter la valeur résultat de addslashes(). A aucun moment elle ne retourne de résultat (c'est ce qu'on appelle une fonction de type
void, car elle ne retourne rien et se contente d'exécuter un traitement).
Le problème, c'est que tu récupères le résultat retourné (bien qu'il n'y en ait pas) dans une autre variable $var ...
Pour corriger cela, il y a deux façon de procéder. La plus simple (et la plus adaptée) est de modifier ta fonction pour qu'elle retourne un résultat en ajoutant simplement un "return $var;" à la fin
L'autre solution est un peu plus compliquée, mais peut t'être utile un jour, il s'agit de dire que la variable $var contenue dans la fonction est une variable
globale, c'est à dire que sa portée ne se limite pas à la fonction (en temps normal, une fois la fonction exécuté, cette $var est détruite), mais provient d'une variable extérieure... bon le mieux étant d'avoir un exemple :
$var = 1;
function toto() {
$var = 2; // cette variable est différente de la première, son périmètre se limite à la fonction
return $var; // retourne la valeur
}
$var = toto(); // affecte la valeur au premier $var
echo $var; // affiche 2, le résultat de la fonction est placé dans la variable
$var = 1;
function toto() {
$var = 2;
}
toto(); // appel simplement la fonction
echo $var; // affiche 1, la fonction n'impacte pas la variable
$var = 1;
function toto() {
global $var; // la variable est globale, elle n'est pas juste propre à la fonction
$var = 2; // affecte la variable à l'extérieur de la fonction
}
toto(); // appel simplement la fonction
echo $var; // affiche 2, la fonction n'impacte pas la variable