php fonction

lucie
Invité n'ayant pas de compte PHPfrance

23 oct. 2010, 21:34

Bonjour je dois réaliser une moyenne avec l'aide des functions.
J'ai créer mes 2 fichiers mais une erreur apparaît, je n'arrive pas à la corriger, voici mes 2 fichiers:
merci à vous

fichier somme:
<?php
//on charge le fichier de fonctions
require("fonction.php");
//on construit le tableau avec nos trois valeurs
$T = array($_POST['val1'],$_POST['val2'], $_POST['val3']);
?>
<!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>Document sans titre</title>
</head>

<body>

<p>
Voici la moyenne : <?php echo moyenne($tab,nb); ?>

</p>

<hr>
<p>
Recommencez
</p>
<p>

<form name="form1" method="post" action="somme.php">
<input type="text" name="val1">
<input type="text" name="val2">
<input type="text" name="val3">
<input type="submit" name="Submit" value="Valider">


</p>
</body>
</html>





fichier fonction
<?php

function moyenne($tab,$n)

{
$r=$tab[0];
for($i=1;$i<$n;$i++)
{
$r=$r+$tab[$i];
}
$m=$r/$n; voici mon erreur: Warning: Division by zero in C:\wamp\www\testphp\fonction.php on line 12
return $m;
}

?>

ViPHP
xTG
ViPHP | 7331 Messages

23 oct. 2010, 21:39

Commençons par gérer les erreurs d'utilisation :
function moyenne($tab,$n)
{
if( $n > 0 && is_array($tab) )
{
  $r = array_sum($tab); // somme des valeurs du tableau
  $m=$r/$n;
  return $m;
else
  return 0;
}
A toute fonction est associé les tests des arguments, sinon on se retrouve avec des erreurs bêtes qui viennent de l'utilisation.

Et dans ton cas quelle utilisation maladroite ?
<?php echo moyenne($tab,nb); ?>
Où est déclaré $tab ?
La constante nb ? (qui ne serait pas plutôt la variable $nb ?)