Webmaster Hub - Format normal - Les publications
26 septembre 2004
par Cariboo
Les publications de Webmaster Hub
http://www.webmaster-hub.com/publication/Mon-premier-programme-en-PHP-3e.html
Nous poursuivons le survol des principales instructions du langage PHP.
Après avoir vu :
les variables et les constantes
et les opérateurs
dans l’article précédent.
Nous abordons à présent deux groupes d’instructions qui donnent toute sa puissance au langage :
les structures de contrôles
les fonctions et les classes
Il s’agit bien d’un survol pour vous donner un aperçu synthétique, pour en savoir plus, consultez la documentation php complète en français :
http://fr.php.net/manual/fr/index.php
Revenir à la première partie Revenir à la deuxième partie
Le langage PHP dispose des mêmes boucles et tests que le langage C, les habitués de ce langage ne seront pas dépaysés.
Les tests
Il y’a deux tests disponibles :
if ... elseif ... else
switch ... case ... default
Les boucles
Le langage PHP propose trois types de boucles
while
do ... while
for
break et continue [1]
each et list Ces deux fonctions sont particulièrement utiles dans les boucles parcourant les tableaux.
include et require
Ces deux instructions font la même chose [2] : elles ajoutent à un emplacement donné une portion de code qui est exécutée avec le reste du script.
include et require permettent notamment de réutiliser des portions de codes dans plusieurs scripts [3], d’utiliser des bibliothèques de fonction et des classes objets.
Exemple d’utisation
include "footer.inc.php";
L’essentiel de la puissance du langage PHP provient du très grand nombre de fonctions disponibles par défaut dans le langage. Les débutants en programmation php ont une fâcheuse tendance à réiventer la roue, alors que le plus souvent, une fonction existe déjà dans le langage qui permet de remplir le même office, et souvent mieux et plus vite.
Si néanmoins la fonction n’existe pas, où si l’on veut alléger le code en créant une fonction capable d’effectuer des tâches complexes ou originales, il est très facile de définir des fonctions utilisateur.
Les fonctions des bibliothèques PHP
La communauté des développeurs du langage PHP a, au fil du temps, inventé des librairies de fonctions pour pratiquement tous les besoins imaginables pour une application web.
Il existe 124 librairies fournies avec les versions "officielles" de PHP, comportant souvent plusieurs dizaines de fonctions !
Il existe aussi de très nombreuses librairies complémentaires, qui ne sont pas fournies avec les "packages" officiels, et qui peuvent être installées pour étendre les possibilités du langage...
Compte tenu de ce foisonnement, il est assez vain de lister toutes ces librairies. On se réferera à la documentation php pour trouver la librairie qui correspond au type de scripts que vous souhaitez écrire :
http://fr2.php.net/manual/fr/funcref.php
Les fonctions utilisateur : principe
PHP dispose de fonctionnalités objet limitées mais néanmoins très puissantes. Le développement de classes objet dans certains projets peut donc apporter de nombreux avantages :
réutilisabilité et portabilité facilitée du code
réduction du temps de développement et de débogage sur des projets complexes
allègement du code de certains programmes
PHP n’est pas un langage objet véritable : c’est un langage de programmation structurée avant tout, disposant de fonctionnalités objet [4].
La programmation objet : principes et limitations en PHP Avertissement : la programmation objet est SIMPLE mais nécessite, pour pouvoir l’utiliser de rentrer dans son paradigme : une série de concepts, assez abstraits. Nous partons du principe que vous connaissez ces concepts ici. Si tel n’est pas le cas, commencez pas lire d’abord un ouvrage généraliste sur la programmation objet, avant de développer des classes PHP.
Déclaration d’une classe objet
La déclaration d’une classe se fait à l’aide de l’instruction Class
exemple :
Class exemple{
...
}
Définition d’une classe objet
Définir la classe revient à déclarer et définir ses propriétés et ses méthodes
Propriétés
Une propriété n’est ni plus ni moins qu’une variable PHP classique, qui définie dans une classe devient un attribut de celle-ci.
Par contre, dans le contexte de la POO, le caractère facultatif de la déclaration de variable disparaît, et il devient nécessaire de déclarer une variable réutilisée au sein de la classe en tant que propriété.
La déclaration se fait avec le mot-clé var
Class exemple{
var $une_propriete; // exemple de déclaration de propriété
...
}
Méthodes
Une méthode se déclare et se définit comme une fonction php classique.
Class exemple{
function une_methode{ //un exemple de déclaration de méthode
...
}
...
}
Cas particuliers des constructeurs
Le constructeur est une méthode du même nom que la classe, qui s’exécute automatiquement lors de l’instanciation de la classe. Il n’y a pas de syntaxe particulière de déclaration pour la méthode constructeur en php.
Instanciation
Les classes en php s’instancient à l’aide de la commande New
<?php
Class exemple{
...
}
$nouvelobjet = new exemple //instanciation de la classe objet exemple sous l'alias $nouvelobjet
?>
Invocation et accès aux propriétés et méthodes
L’accès aux propriétés et méthodes d’un objet se fait à l’aide de l’accesseur -> ("tiret" "supérieur")
Exemples d’utilisation :
<?php
Class exemple{ //déclaration de la classe exemple
var une_propriete; //déclaration d'une propriété
function une_methode{ //déclaration d'une méthode
...
}
...
}
$nouvelobjet = new exemple //instanciation de la classe objet exemple sous l'alias $nouvelobjet
$nouvelobjet->une_methode(); // appel de la méthode une_methode
echo $nouvelobjet->une_propriete; // accède à la propriété une_propriété et l'affiche
$nouvelobjet->une_propriete='valeur'; // assigne une valeur à une propriété
?>
Polymorphisme
Il est possible d’étendre les propriétés d’une classe : PHP permet le polymorphisme. Il suffit d’ajouter le mot clé extends
<?php
Class exemple{
...
}
Class deriveedeexemple extends exemple{
var unenouvellepropriete //propriété supplémentaire
function unenouvellemethode{ //méthode supplémentaire
...
}
?>
A noter (c’est classique en POO) le rôle particulier du mot "this" qui permet de remplacer le nom de l’objet quant on doit l’utiliser à l’intérieur d’une classe
Après ce survol des fonctionnalités et des instructions du PHP, il est grand temps de s’attaquer à notre premier programme : un formulaire qui poste ses données par mail tout en les stockant dans une base de données
Suite de l’article : un exemple de programme classique en PHP
Revenir à la première partie
Revenir à la deuxième partie
[1] Ces deux instructions ne sont normalement utilisées que dans un tout petit nombre de cas particulier en programmation structurée. Si vous les utilisez fréquemment, c’est le signe d’un programme mal conçu
[2] La différence réside dans la matière de gérer les exceptions et les erreurs. En cas d’erreur, include ne renvoie qu’un avertissement, le script peut continuer à s’exécuter. Require arrête le fonctionnement du script
[3] Cette manière d’opérer permet par exemple de rassembler le code figurant respectivement dans l’en-tête et le pied de page de toutes les pages d’un site, dans deux fichiers include... Cette méthode est souvent appelée pseudo-frames
[4] La version 5 du PHP viendra changer la donne : les dernières fonctionnalités objets manquantes dans la version 4 sont au rendez-vous, et il sera donc possible de développer des applications 100% en programmation orientée objet ou presque. Mais que les allergiques à la POO se rassurent (il y’en a) : la programmation structurée reste toujours supportée