14.4. Fonctions en PHP
1 Introduction - 2. Création de
fonctions personnelles.
- 3. Fonction conditionnelle si - 4. Fonction
répétitive WHILE - 5. Opérateurs
logiques - 6. La commande switch - 7. La commande isset() -
8. Informations
sur les visiteurs - 9. Exercice
Dans le chapitre précédant de cette formation, nous avons utilisé les
fonctions print() et echo. Cette partie du cours PHP va nous permettre de
créer nos propres fonctions et d'utiliser des fonctions plus complexes pour la
création de notre site Internet.
Créer une fonction en PHP va nous permettre de
définir des fonctionnalités supplémentaires dans nos pages Internet et de les
réutiliser au sein d'une même page. En php3, les fonctions doivent être
établies au préalable (en début de page), plus en PHP4. La syntaxe d'une fonction est:
- function nom-fonction($argument1, $argument2) {
- // code php
- return $variable;
- }
|
FUNCTION (mot réservé) permet de spécifier que
les lignes suivantes (encadrées par { et }) reprennent les arguments d'une
fonction.
$argument1 et $argument2 sont des variables
transférées à la fonction, $variable, le résultat (précédé de return).
Comme exemple, créons la fonction qui calcule et
affiche un prix TVA comprise suivant un prix de départ et un taux de TVA
|
<?php
function prix_tvac($prix_htva,$taux_tva)
{
return ($prix_htva*(1+$taux_tva/100));
}
print(prix_tvac(19.23,21));
?> |
Ces lignes affichent le prix TVAc d'un produit de
19,23 € pour un taux de 21 %, soit 23,2683
Remarques:
-
Si vous transférez trop d'arguments, les
arguments excédentaires sont ignoré.
-
Si le nombre d'arguments est insuffisant, la
fonction renvoie la valeur booléen FALSE
-
Un seul paramètre peut-être renvoyé par return
mais vous pouvez utiliser une matrice return array(1,2,3), à condition que
le nombre de valeurs soit défini (fixe).
Comme beaucoup d'autres langages de programmation,
PHP utilise la fonction IF pour les opérations conditionnelles. Sa structure:
- <?php
- if (condition1) {
- // fonction 1
- }elseif (condition2) {
- //fonction 2
- }elseif (condition3) {
- //fonction 3
- }else {
- //fonction 4
- }
- ?>
|
Si la condition 1 est vraie, le programme exécute la
fonction 1, sinon, elle vérifie la condition 2. Si cette condition est remplie,
elle exécute la fonction 2. Sinon, elle vérifie la condition 3. Si la
condition 3 est remplie elle exécute la fonction 3. Sinon, c'est la fonction 4
qui est exécutée.
Le tableau suivant reprend les comparaisons
possibles.
| condition |
exemple |
nom |
remarque |
| = = |
$valeur1==$valeur2 |
égal |
vrai si $valeur1 est égal à $valeur2 |
| = = = |
$valeur1===$valeur2 |
identique |
vrai si $valeur1 est égal à $valeur2 et s'ils sont de
même type (à partir de PHP version 4) |
| <> |
$valeur1<>$valeur2 |
différent |
vrai si $valeur1 est différente de la $valeur2 |
| < |
$valeur1<$valeur2 |
inférieur |
vrai si $valeur1 est inférieure à $valeur2 |
| > |
$valeur1>$valeur2 |
supérieur |
vrai si $valeur1 est supérieure à $valeur2 |
| <= |
$valeur1<=$valeur2 |
inférieur ou égal |
vrai si $valeur1 est inférieure ou égale à $valeur2 |
| >= |
$valeur1>=$valeur2 |
supérieur ou égal |
vrai si $valeur1 est supérieure ou égale à $valeur2 |
Le sigle égal est réservé pour introduire des
données dans une variable. Dans les versions inférieures à PHP 4,
"1" == 1 renvoie la valeur vraie (même s'ils sont de types
différents).
Cette fonction permet de faire une boucle tant que la
condition est vraie. Attention de mettre une valeur qui varie dans le temps (par
exemple un compteur qui s'incrémente à chaque boucle), sinon, le programme
tourne sur lui même à l'infini (en boucle).
|
While(condition)
{
// a effectuer
}
|
En PHP, la fonction While peut par exemple afficher
les nombre de 0 à 9 par le script:
-
$i=0;
-
while($i<10){
-
print($i."<br>");
-
$i=$i+1;
-
}
|
Comme dans la majorité des langages de
programmations, vous pouvez utiliser les fonctions Et et Ou dans les fonctions
conditionnelles Si:
| Comparateur |
exemple |
Nom |
description |
| AND |
$valeur1 AND $valeur2 |
ET |
Vrai si toutes les conditions sont exactes |
| OR |
$valeur1 OR $valeur2 |
Ou |
Vrai si une des condition est exacte |
| XOR |
$valeur1 XOR $valeur2 |
Ou exclusif |
Vrai si une des condition est exacte, mais pas toutes en
même temps |
| ! |
! $valeur1 |
Non |
Vrai si $valeur1 est fausse |
| && |
$valeur1 && $valeur2 |
ET |
Vrai si toutes les conditions sont exactes |
| || |
$valeur1 || $valeur2 |
Ou |
Vrai si une des condition est exacte |
La commande Switch permet de définir une liste de
commande en fonction d'une variable.
|
switch($variable){
case valeur1:
commmande 1
break;
case valeur2:
commande 2
break;
default:
commande avec
valeur
break;
} |
-
Pour chaque possibilité, on utilise CASE suivi
de la valeur. La liste de commande se termine par BREAK;.
-
La ligne DEFAULT (optionnelle) permet de définir
une liste de commande si aucune autre condition n'est remplie. Si vous
omettez cette option et que la valeur de la variable $variable n'est pas
reprise, aucune commande n'est exécutée, aucun message d'erreur n'est non
plus affiché.
Exemple:
<?php
$variable=1;
switch($variable){
case 1:
echo '1';
break;
case 2:
echo'2';
break;
default:
echo'autre valeur';
break;
}
?> |
Ce petit programme affiche 1 si $variable vaut 1, 2
si la variable est 2 et autre dans tous les autres cas.
La commande ISSET() est régulièrement utilisée dans les
fonctions conditionnelles, elle vérifie si une variable est définie et renvoie
true (Vrai). Dans le cas contraire, la fonction renvoie False (faux).
Prenons un exemple:
|
<?PHP
$a="valeur";
print(isset($a));
print(" -
la valeur a est bien définie<br>");
print(isset($b));
?> |
Affichera "1 - La valeur a est bien définie".
Remarquez que la fonction ISSET($b) n'est pas affichée. Nous pouvons modifier
nos lignes de commandes comme:
|
<?php
If (isset($b)==FALSE){
print ("Valeur PHP b non définie");
}
?>
ou
<?php if
(!isse($b) { print
("variable PHP b non définie"); } |
Nous avons inséré la commande print("<br>");
qui envoie un saut de ligne et utilisé une ligne de commande Si pour afficher
"Valeur PHP b non définie". Remarquez que pour tester l'égalité,
nous utilisons ==. Le signe = est utilisé uniquement pour associer une valeur
à une variable. La deuxième méthode utilise la négation ! et donne un
résultat identique.
PHP inclut en standard quelques fonctions permettant
de mieux connaître les visiteurs d'un site. Elles sont automatiquement
récupérées par PHP.
Les données sont intégrées dans un tableau $_SERVER["ligne"]="valeur"
($HTTP_SERVER_VARS["ligne"]=
"Valeur" dans les anciennes versions PH3, et PH4). Les valeurs possibles sont:
| Fonction |
description |
exemple de valeur |
| $_SERVER["REMOTE_ADDR"] |
adresse IP de l'internaute |
62.32.56.269 |
| $_SERVER["HTTP_USER_AGENT"] |
Type de navigateur utilisé |
- Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR
1.1.4322): Windows 2000 sous Internet explorer 6.0
- Mozilla/5.0 (Windows; U; Windows NT 5.0; fr; rv:1.8.0.1)
Gecko/20060111 Firefox/1.5.0.1: Win 2000 sous Firefox1.5
|
| $_SERVER["SCRIPT_FILENAME"] |
le nom du fichier PHP en cours |
index.php |
| $_SERVER["SCRIPT_URl"] |
L'adresse complète de la page précédente sans le nom de
domaine |
/index.php |
| $_SERVER["REQUEST_METHOD"] |
procédure pour obtenir la page |
Par défaut GET, sauf pour les formulaires ou l'on peut
également utiliser la fonction POST |
| $_SERVER["HTTP_REFERER"] |
nom complet de la page Internet précédente |
L'adresse complète de la page qui fait un lien (la valeur
est vide si le navigateur n'a pas suivi de lien). http://www.ybet.be/vente/index.php |
| $_SERVER["HTTP_HOST"] |
le nom de domaine qui envoie le lien |
http://www.ybet.be |
L'affichage de ces valeurs passent par les fonctions
en PHP Print() ou Echo.
Exemple d'utilisation:
|
<?PHP
print('Nous sommes le ');
print(date('d/m/Y'));
print('. Il est actuellement ');
print(date('H:i:s'));
print('.');
Print(' Ton adresse Internet IP ');
Print($_SERVER['REMOTE_ADDR']);
print(" ");
Print($_SERVER['HTTP_USER_AGENT']);
print(" ");
print($_SERVER['SCRIPT_URI']);
print(' ');
print("Ta page d'arrivée est: ");
print($_SERVER['HTTP_REFERER']);
?>
|
Nous sommes le 09/02/2012. Il est actuellement 05:31:35 Ton adresse Internet IP 38.107.179.239 CCBot/1.0 (+http://www.commoncrawl.org/bot.html) Ta page d'arrivée est: |
-
Affichez les nombres de 1 à 10 dans un tableau de 2
colonnes (1 seule ligne) les 5 premiers dans la première cellule, les 5
suivants dans la seconde.
-
Déclarez une variable $texte="exercice PHP".
Faites une fonction conditionnelle qui affiche "Félicitation, vous
avez réussi le test" si $texte="exercice PHP", qui affiche
'l'exercice est difficile' si la variable $texte est différent de exercice
PHP. Essayez en donnant une autre valeur à $texte.
|
 |
| 1.
Introduction
au langage PHP |
| 2. Easyphp,
vérification en local |
| 3. Premières
commandes en PHP
|
| 4. Fonctions en
PHP
|
| 5. Les tableaux
|
| 6. Fonctions sur
les variables
|
| 7. Formulaires Mail
|
|
8. Base de donnée
MySQL
avec easyphp |
| 9. Première
application de Mysql
|
| 10. Gestion des
tables par PHP
|
| 10.a Exercice:
formulaire de contact
|
| 11. Mise en page
PHP - HTM: include() - require()
|
| 12. Création
automatique de la table utilisateur
|
| 13. Formulaire et
vérification des données
|
| 14. Insertion des
nouveaux membres
|
| 15. Gestion des
catégories
|
| 16. Liste de
choix déroulante
|
|
17. Modification
des tables MySQL
|
|
18. Enregistrer
un fichier via un formulaire
|
| 19. Formulaire
d'insertion
|
| 20. Affichage des
annonces
|
| 21. Filtrage des
petites annonces (1)
|
| 23. Exercice: gérer
des news
|
| 24. Utilisation
des Cookies
|
| 25. Gestion
fichiers et Dossiers (source et FTP)
|
| 26. Cryptage et
décryptageen PHP |
| 27. Base
relationnelle, méthodes Left et Join. |
 |
| Formation
référencement en ligne,
positionnez votre site sur Google, MSN, Yahoo, ... |
| Les
feuilles de styles |
| FrontPage
et l'HTML, cours en ligne |
| Exemple d'utilisation de ces notes
Le
Luxembourg belge, intégration des annonces, agenda,
annuaire, découverte de la région, administration, ...
|
|
|
Création
et référencement Internet Formation:
apprenez à créer et référencer votre propre site Internet, dans notre liste
de formations
informatique privées
|
| Pour nous rejoindre,
plan d'accès
|
| Caisses
et balances de commerce, gamme TEC, Ohaus.
|
|
| Dans les autres formations en ligne sur YBET:
Access - Excel,
Formation
Word
|
|