مرحبا بكم معنا
 
الرئيسيةkhabouzia1بحـثالتسجيلدخول
11111111111

عداد +ساعة
relojes web gratis
اعرف يوم ميلادك
Mois
Date
Annee

ساعة عالمية
Place holder for NS4 only

شاطر | 
 

 كودات انسيابية2

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
كاتب الموضوعرسالة
djallalaissa16
مدير المنتدى
مدير المنتدى
avatar

عدد المساهمات : 455
تاريخ التسجيل : 20/01/2010
العمر : 32

مُساهمةموضوع: كودات انسيابية2   الأحد أكتوبر 03 2010, 15:03



<html>
<body>

<?php

// afficher un menu de login membre simple
echo '
<table>
<form action="liens.php" method="post" name="login_form">
<tr>
<td>Votre login</td>
<td><input type="text" name="login" value="" size="20" maxlength="42"></td>
</tr>
<tr>
<td>Votre password</td>
<td><input type="password" name="pass" value="" size="20" maxlenght="12"></td>
</tr>
<tr>
<td>
<input type="submit" name="valider" value="val">
<input type="reset" name="annuler" value="anu">
</td>
</tr>
</form>
</table> ';

?>

</body>
</html>

<?php

/*
** Function : form_login_member
** Input : aucun pour l'instant
** Output : aucun
** Description : affichage d'un formulaire de login de membre
** Creator : polom
** Date : 25/10/2001
*/

function form_login_member()
{
echo '<table>';
echo '<form action="liens.php" method="post" name="login_form">';
echo '<tr>';
echo '<td>Votre login</td>';
echo '<td><input type="text" name="login" value="" size="20" maxlength="42"></td>';
echo '</tr>';
echo '<tr>';
echo '<td>Votre password</td>';
echo '<td><input type="password" name="pass" size="20" maxlenght="12"></td>';
echo '</tr>';
echo '<tr>';
echo "<td>;
echo '<input type="submit" name="valider" value="val">';
echo '<input type="reset" name="annuler" value="anu">';
echo '</td>';
echo '</tr>';
echo '</form>';
echo '</table>';
}

?>


3 - Utiliser cette fonction dans le code précédent vu en 1 :

Plusieurs possibilités s'offrent à vous pour utiliser cette fonction à la place du code dans index.php, je vous propose deux possibilités pour intégrer cette fonction, sachant que la deuxième est préférable.

Déclarer la fonction au début du fichier index.php, elle sera appelée ensuite dans le script.
Créer un fichier qui regroupera vos fonctions ce qui permet de les retrouver facilement, vous ferez appel à ce fichier à l'aide de include ("fonctions.inc.php") ou require ("fonctions.inc.php") si votre fichier de fonctions s’appelle fonctions.inc.php bien sur Smile toujours avant de faire appel à la fonction dans index.php
4 - le nouvel index.php avec la fonction :

Nous allons opter pour la deuxième solution, cad mettre notre fonction dans le fichier fonctions.inc.php, je ne mettrai pas le code, c'est le même que précédemment Smile, et faire appel à la fonction dans notre fichier index.php



<html>
<body>

<?php

include ("fonctions.inc.php");

form_login_member();

?>

</body>
</html>


<html>
<body>

<?php

include ("fonctions.inc.php");

$action = "ma_page_de_validation.php";
$login_def = "Ici votre login";
$sub_name = "Envoyer";
$reset_name = "Annuler la saisie";
$login_txt = "Votre login :";
$pass_txt = "Votre password :";

form_login_member($action, $login_def, $sub_name, $reset_name, $login_txt, $pass_txt);

?>

</body>
</html>


Et voila vous avez une belle fonction qui affiche un formulaire de login paramétrable propre et clair. Rien ne vous empêche de modifier vous-même maintenant cette fonction pour la faire évoluer Smile vous pouvez par exemple passer les tailles des boutons, des champs etc...

Ps : Vous pouvez bien sûr appeler des fonctions à l'intérieur d'autres fonctions.
Ps2 : Il n'est pas obligatoire de nommer les variables passées dans la déclaration de la fonction de la même façon que celles passées dans le script principal, cependant cela demeure plus clair d'utiliser les mêmes noms de variables dans les 2 cas.
Ps3 : Vous pouvez affecter des valeurs par défaut aux paramètres en les déclarant comme ceci : function toto($nbr, $nbr2 = "42") et la si vous ne précisez pas le paramètre $nbr2 il sera mis à 42 par défaut. Ceci est valable uniquement pour les variables passées par valeur (voir ci-dessous).



6 . Paramètres par valeur ou par référence

Les paramètres d'une fonction peuvent être passés de deux façons différentes :
Par valeur, c'est a dire que s'ils ont une valeur à l'extérieur de la fonction, seule la valeur est transmise à la fonction, si la variable subit des modifications à l'intérieur de la fonction, ces modifications ne seront pas perçues dans le programme principal.


Par référence, avec le signe & avant la variable (ex : &$cpt). Dans ce cas-là, l'adresse mémoire de la variable dans le programme est passée à la fonction et toute modification de cette variable dans la fonction aura des répercutions à l'extérieur du programme.
Voici un exemple de programme utilisant une fonction avec un passage par valeur et ensuite par référence :




<?php

function modif_tab($tab)
{
$tab[0] = "j'aime le perl mais je préfere le php.";
}

?>

<html>
<body>

<?php

$tab = array("salut", "j'aime le fortran et le cobol");

// passage de $tab par valeur, la boucle for affichera
// salut, j'aime le fortran et le cobol

modif_tab($tab);
for ($i = 0; $tab[$i]; $i++)
echo "$tab[$i] ";

// passage de $tab par référence, la boucle for affichera
// salut, j'aime le perl mais je préfere le php.

modif_tab(&$tab);
for ($i = 0; $tab[$i]; $i++)
echo $tab[$i] ;

?>

</body>
</html>


Voilà j'espère que vous avez compris la nuance entre les deux types de passage Smile



7 . Retourner des valeurs dans une fonction

Nous allons utiliser un exemple d'operations sur 2 nombres : addition, multiplication, division par exemple toujours dans un fichier index.php. Le résultat de l'opération entre ces 2 nombres sera calculé dans la fonction puis retourné à l'aide de l'instruction return($result) (NB: une fois arrivé à l'instruction return, tout traitement qui suit est arreté).

1 - le programme dans index.php qui fait appel à la fonction :



<html>
<body>

<?php

include ("functions.inc");

// operations "add", "sou" "mul"

$operation = "add";
$nbr1 = 42;
$nbr2 = 69;
$result = 0;

// recuperation du resultat de 42 + 69

$result = do_op($nbr1, $nbr2, $operation);

// affichage du resultat;

echo $result;

// affiche 111

?>

</body>
</html>


Donc ici nous initialisons les 2 nombres ainsi que l'opération à effecuter, puis on fait appel à la fonction do_op contenue dans le fichier inclus dans fonctions.inc.php

2 - La fonction qui effectue les opérations :




<?php

/*
** Function : do_op
** Input : INT nbr1, INT nbr2, STRING operation
** Output : INT result
** Description : effectue une opération addition, multiplication ou division
** Creator : polom
** Date : 25/10/2001
*/

function do_op($nbr1, $nbr2, $operation)
{
if ($operation == "add")
return ($nbr1 + $nbr2);
else if ($operations == "mul")
return ($nbr1 * $nbr2);
else if ($operations == "div")
return ($nbr1 / $nbr2);
return (NULL);
}

?>



La fonction reçoit donc les 2 nombres et l'opération à faire, elle retourne le résultat une fois l'opération faite.
Vous pouvez aussi ne pas retourner directement le résultat dans la fonction précédente et le stocker, puis le retourner à la fin de la fonction. Sachez que une seule valeur peut être retournée dans une fonction, si vous voulez retourner plusieurs valeurs, il faut à ce moment là utiliser un tableau ou des variables globales (voir ci-dessous).




<html>
<body>

<?php

function stat_fonc()
{
static $cpt = 0;

$cpt++;
echo $cpt;
}

stat_fonc();

// affiche 1 c'est-à-dire premier appel à la fonction, $cpt est initialisé à 0 une seule fois
// et incrementé de 1

stat_fonc();

// affiche 2, $cpt a gardé la valeur précédente et l'incrémente de 1.

?>

</body>
</html>

?>



9 . Récursivité

Qu'est ce que la récursivité ? La récursivité est le fait d'une fonction qui se rappelle elle-même au moins une fois jusqu'à atteindre un résultat voulu. Prenons un exemple simple pour expliquer ce principe à travers le calcul de la puissance d'un nombre entier.

1 - Le code dans index.php :




<html>
<body>

<?php

$nbr = 2;
$puissance = 4;
$result = puissance($nbr, $puissance);
echo $result;

?>

</body>
</html>


On affiche donc ici le résultat de 2 à la puissance 4 c'est à dire 16.

2 - la fonction normale sans récursion :



<?php

/*
** Function : puissance
** Input : INT nbr, INT puissance
** Output : INT result
** Description : effectue la puissance d'un nombre entier
** Creator : polom
** Date : 25/10/2001
*/

function puissance ($nbr, $puissance)
{
for ($total = $nbr; $puissance > 1; $puissance--)
$total = $total * $nbr;
return ($total);
}

?>


Donc là rien de bien compliqué on initialise le résultat au nombre
donc si on a par exemple 2 puissance 4 on a la trace suivante (une trace est l'état de vos variables tout le long de votre programme, c'est une méthode intéressante pour suivre l'évolution de vos variables et débuger entre autre) :

-> départ $total = 2;

4 > 1 ok
$total = 4;
3 > 1 ok
$total = 8;
2 > 1 ok
$total = 16;
1 n'est pas > à 1 donc on arrète le traitement

-> fin $resultat = 16


الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://khabouzia1.maghrebarabe.net
 
كودات انسيابية2
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
khabouzia1 :: قسم اكواد الجافا-
انتقل الى: