par
Ryle » 06 févr. 2009, 18:15
hmm... quelque soit le contenu de $var, ta fonction va retourner une chaine non vide. Du coup, si tu récupères ce résultat et que tu l'utilises comme test dans un if(), php va l'interpréter comme un booléen passé à TRUE et rentrer dans la structure... donc en gros, tu vas toujours rentrer dans le if().
Je suis pas certain d'avoir bien compris ce que tu voulais faire, mais à priori, ta fonction devrait retourner non pas des chaines, mais directement des booléens (true false) et euh... là t'as des guillemets tellement un peu n'importe où que je t'avoue avoir du mal à comprendre le test...
Est-ce que quelque chose dans ce goût là ne correspondrait pas mieux à ce que tu veux faire :
function triRdPM_OSN($var) {
global $projets; // déclaration de la variable global pour y avoir accès depuis la fonction, sans la passer en paramètre
if ($var == 'all')
return TRUE;
else // retourne TRUE si les valeurs sont identiques FALSE sinon
return ($projets->getAttribute('RdPM_OSN_id') == $var);
}
Nota : pas besoin du esleif, en effet, si $var est vide, la comparaison à $var aura le même effet

hmm... quelque soit le contenu de $var, ta fonction va retourner une chaine non vide. Du coup, si tu récupères ce résultat et que tu l'utilises comme test dans un if(), php va l'interpréter comme un booléen passé à TRUE et rentrer dans la structure... donc en gros, tu vas toujours rentrer dans le if().
Je suis pas certain d'avoir bien compris ce que tu voulais faire, mais à priori, ta fonction devrait retourner non pas des chaines, mais directement des booléens (true false) et euh... là t'as des guillemets tellement un peu n'importe où que je t'avoue avoir du mal à comprendre le test...
Est-ce que quelque chose dans ce goût là ne correspondrait pas mieux à ce que tu veux faire :
[php]function triRdPM_OSN($var) {
global $projets; // déclaration de la variable global pour y avoir accès depuis la fonction, sans la passer en paramètre
if ($var == 'all')
return TRUE;
else // retourne TRUE si les valeurs sont identiques FALSE sinon
return ($projets->getAttribute('RdPM_OSN_id') == $var);
}[/php]
Nota : pas besoin du esleif, en effet, si $var est vide, la comparaison à $var aura le même effet :)