Retour de variable inefficace

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Retour de variable inefficace

par orgerix » 11 févr. 2007, 20:01

OK, merci beaucoup...
Donc en gros, return($a) revoie la valeur et non la variable

par Ajoloca » 11 févr. 2007, 20:00

Bonjour,

Dans ton code $message1 est une variable locale à la fonction verifnondoublr(), ce qui veut dire que des que tu sorts de la fonction cette variable n'existe plus.

Pour pouvoir l'utiliser en dehors de la fonction, il faut la récupérer.
$message1 = verifnondouble($groupe);
print('***' . $message1 . '***<br />');

par orgerix » 11 févr. 2007, 19:53

Le tableau de valeur est obtenu à partir d'un formulaire, donc il aura toujours le même nombre d'indice. Cependant, on peut rentrer plusieurs fois la même valeur dans différents champs, ce que j'aimerai éviter.

Sionn, le fait de mettre un argument dans return ne fait pas qu'elle devient accessible par le script ayant appelé la fonction?

Voici les lignes de scripts faisant appel à la fonction :
verifnondouble($groupe);
print($message1);
PS Jules Petibidon, je ne vois pas pourquoi tu dis que mon code est illisible. pour moi il est parfaitement clair, mais c'est peut être parce que j'ai une logique différente...

par Jules Petibidon » 11 févr. 2007, 14:07

hello,

accessoirement, meme si c'est probablement pas ca qui te plante ta fonction, les parentheses sont déconseillées avec return.

accessoirement bis, les lignes coutent cher dans ton éditeur ou c'est par plaisir que tu rends ton code illisible ?

par Truc » 11 févr. 2007, 13:26

Salut,
Comment y fait tu appel à cette fonction ?
Et comment est-ce que tu récupères le message ?

Sinon méthode qui devrait fonctioner pour faire ce que tu veux :
appliquer array_unique() sur le tableau compter (count()) le nombre d'élements des deux tableaux s'il sont différent alors il y a au moins un élément qui se répète.
Ou meme un array_diff() :-k

Retour de variable inefficace

par orgerix » 11 févr. 2007, 12:34

Bonjour,

J'ai codé une fonction permettant de détarminer si une donnée était présente plusieurs fois dans un tableau.
<?php
function verifnondouble($array)
{$i=0;
$j=0;
$max=count($array);
$message1="";
while ($i<$max)
	{$a=NULL;
	if ($array[$i]!="")
		{while ($j<$max AND $a==NULL)
			{if ($array[$i]==$array[$j])
				{$a="oui";
				$b=$array[$i];
				$message["$b"]="présent plusieurs fois<br>";
				}
			$j++;}}
	$i++;}
foreach($message as $key => $value)
	{$message1.="$key $value <br>";}
return ($message1);}
?>
J'ai un petit problème avec return($message1).

Si je teste $message1 à l'interieur de la fonction, elle existe. Par contre, à l'exterieur, non...