Page 1 sur 1

Fonction PHP

Posté : 23 mars 2011, 00:53
par Jon1988
Bonjour, je dois créé une fonction pour mon cour de PHP. Je ne sais pas ce qui me manque, mais le fureteur n'affiche rien.

Voici ce que je dois réaliser:
Créer un fichier nommé exercicePratique2.php dans lequel vous allez créer une fonction nommée fusion_trie($tableau1, $tableau2) prenant deux tableaux en paramètre et qui retourne un tableau. Le rôle de cette fonction est de fusionner ensemble deux tableaux ainsi que de trier ce tableau résultant. Vous devez vérifier que chaque argument de la fonction soit un tableau avant de faire quoi que ce soit. Si un des arguments n'est pas un tableau, affichez un message d'erreur à l'écran.

Voici le codage que j'ai fais jusqu'à maintenant:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<?php
function fusion_trie($tableau1,$tableau2)
{
$tableau1=array('jonathan','alexandre','mathieu');
$tableau2=array('marc','raymond','louis');
	if (is_array($tableau1)){

echo $tableau1;

}else{

echo 'Le tableau1 n’est pas un tableau';

}
	if (is_array($tableau2)){

echo $tableau2;

}else{

echo 'Le tableau2 n’est pas un tableau';

}
$tableau3 = array_merge($tableau1,$tableau2);
sort($tableau3);
print_r($tableau3);
}
return ($tableau3)
?>
<body>
</body>
</html>

Re: Fonction PHP

Posté : 23 mars 2011, 01:44
par misterflo
Bonsoir,
le return ($tableau3); doit être dans la fonction !

EDIT: en fait y a pleins d'erreurs dans la fonction ^^'

Si tu n'appelle pas la fonction elle n'affichera rien effectivement...
pour appeler la fonction rien de plus simple, tu écris le nom de la fonction, dans ton cas cela donnera :
function ma_fonction()
{
	echo "ceci est un texte !";
}

//plus loin dans le code

ma_fonction();
//Affichera : ceci est un texte !
Ensuite, fait attention à tes if, même si les tableaux n'en sont pas, tu fais le reste du traitement (array_merge etc.), ce qui donnera une erreur php :wink:

Re: Fonction PHP

Posté : 23 mars 2011, 06:00
par jon1988
Merci beaucoup :)

Re: Fonction PHP

Posté : 23 mars 2011, 19:45
par devlop78
Juste par précision, il est préférable d'utiliser return que return (), car il s'agit d'une structure de langage. Au delà de la performance, return () ne permettrait pas le retour avec référence (voir doc)

Re: Fonction PHP

Posté : 27 mars 2011, 16:51
par jon1988
Jusqu'a maintenant, j'ai cela.

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <?php function fusion_trie($tableau1,$tableau2,$tableauUni) { $tableau1=array('jonathan','alexandre','mathieu'); $tableau2=array('marc','raymond','louis'); $tableauUni = array_merge($tableau1,$tableau2); print_r($tableauUni); if (is_array($tableau1)){ echo $tableau1; }else{ echo 'Le tableau1 n’est pas un tableau'; } if (is_array($tableau2)){ echo $tableau2; }else{ echo 'Le tableau2 n’est pas un tableau'; } if (is_array($tableauUni)){ s echo $tableauUni; }else{ echo 'Le tableauUni n’est pas un tableau'; } sort($tableauUni); return fusion_trie($tableau1,$tableau2,$tableauUni); } ?> <body> </body> </html>

Re: Fonction PHP

Posté : 27 mars 2011, 17:03
par moogli
heu tu a testé ta fonction ?

quand on lit l'énoncé
Vous devez vérifier que chaque argument de la fonction soit un tableau avant de faire quoi que ce soit. Si un des arguments n'est pas un tableau, affichez un message d'erreur à l'écran.
et que l'on regarde ton code, il n'y a pas correspondance.

Il faut commencer par vérifier le type des variables passées en paramètre de la fonction et ensuite faire le tri (quel type de tri ? et retourner un tableau).

ce qui peu donner
<?php
function fusion_trie($tableau1,$tableau2) {
	if (is_array($tableau1) && is_array($tableau2)) {
		$ret = array_merge($tableau1,$tableau2);
		return sort($ret);
	}
	else {
		echo 'Les deux paramètres doivent êtres des tableaux';
		return false;
	}
}
?>
Après faut voir s'il faut des messages d'erreurs précis, si c'est la fonction qui doit afficher le message d'erreur etc

Lorsque tu ton code suis l’énoncé (il est assez précis), quand ce n'est pas le cas couche sur papier les étapes a suivre (quitte a faire un diagramme) et a partir de la le code coule de source ;)

@+

Re: Fonction PHP

Posté : 28 mars 2011, 18:34
par Jon1988
C'est bien le diagramme, je n'y avais pas penser, merci!

Merci pour les explications, j'apprecie!