Tải bản đầy đủ (.pdf) (50 trang)

MySQL et CSS- P4

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.06 MB, 50 trang )

}
session_register(tentative);
}
Ainsi quand l’internaute atteint la fin de la troisième tentative avec une
réponse fausse à la question, un nouvel écran lui demande d’envoyer un
courriel au webmestre.
L’ouverture d’une fenêtre avec une fonction
Javascript
Le formulaire oubli.php n’a pas besoin de tout l’écran pour s’afficher,
nous allons donc créer une nouvelle fenêtre avec une fonction Javascript
que nous appellerons ouvrir_vasistas() :
<SCRIPT LANGUAGE="JavaScript">
<!--
function ouvrir_vasistas(adresse, nom_fenêtre,caracteristiques) {
window.open(adresse, nom_fenêtre,caracteristiques);
}
</SCRIPT>
Quittez la page oubli.php et dans votre page d’accueil, ajoutez le lien :
Vous êtes déjà membre et vous avez peut-être
<a href="#"
onClick="ouvrir_vasistas(’oubli.php’,’vasistas’,’menubar=no,
scrollbars=no,statusbar=no, width=300,height=200’)">
oublié votre mot de passe</A>.
L’application est alors bouclée.
4.13
Récapitulation de la syntaxe
des requêtes
Au cours de ce chapitre, l’apprentissage de la syntaxe SQL et des
fonctions MySQL a été dispensé au fur et à mesure des applications.
Récapitulons-les.
Récapitulation de la syntaxe des requêtes


Double Poche PHP & MySQL • 151
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Voici d’abord les principales commandes SQL. Ce sont des commandes
communes à la plupart des bases de données. Seule leur syntaxe peut
présenter des petites particularités (les types de guillemets…).
Tab. 4.9 : Les principales commandes SQL
Commande Description Syntaxe
CREATE Crée une table CREATE TABLE nom_table
(nom_colonne type(longueur)…)
DELETE Efface des données DELETE FROM nom_table
INSERT Insère des données INSERT INTO nom_table
[(colonne1,…)] VALUES
(valeur_colonne1,…)
SELECT Extrait des données SELECT nom_colonne1… FROM
nom_table
UPDATE Modifie des
données
UPDATE nom_table SET
nom_colonne1=’nouvelle_valeur’,…
Les fonctions de MySQL présentent l’inconvénient de consommer de la
ressource serveur, surtout si votre base est bien remplie. Mais elles
permettent de vous épargner des lignes de codes en langage PHP.
Tab. 4.10 : Quelques fonctions MySQL
Fonction Description Syntaxe
AVG() Retourne la moyenne des différents
nombres
AVG(nom_colonne1)
COUNT() Compte le nombre de lignes COUNT (*)
RAND() Permet d’effectuer un tri aléatoire avec
ORDER BY

ORDER BY RAND ()
4
MySQL en action
152 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Voici un certain nombre de clauses SQL qui modulent le résultat :
WHERE
Détermine les données sur lesquelles s’appliquent les commandes SQL
DELETE, SELECT, UPDATE
Syntaxe :
WHERE nom_colonne=’valeur’
Options
AND, OR, NOT
Exemple
DELETE FROM nom_table where nom_colonne1=2 OR
nom_colonne1=5
Explication
AND : les deux expressions sont vraies, OR : une expression
est vraie, NOT : une expression est fausse. Ces trois
opérateurs peuvent se combiner avec des parenthèses
Prenons par exemple :
SELECT * from membres where (pays=’HTI’ OR pays=’DMA’)
AND date_misajour BETWEEN 20020401 AND 20020430.
Les parenthèses donnent des priorités, ainsi OR est traité avant AND.
DISTINCT
Regroupe les données identiques
Syntaxe :
DISTINCT nom_colonne
Options
sans

Exemple
SELECT DISTINCT nom_colonne1 FROM nom_table
Explication
retire les doublons du résultat
GROUP BY
Regroupe les données identiques
Syntaxe :
GROUP BY nom_colonne1, nom_colonne2…
Options
sans
Récapitulation de la syntaxe des requêtes
Double Poche PHP & MySQL • 153
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Exemple
SELECT * FROM nom_table where nom_colonne1=2 GROUP
BY nom_colonne2
Explication
partitionne les résultats par champ sur lesquels il effectue les
fonctions
ORDER BY
Ordonne les données selon la ou les colonnes choisies
Syntaxe :
ORDER BY nom_colonne1, nom_colonne2…
Options
ASC (par défaut) : ordre croissant), DESC : ordre décroissant
Exemple
SELECT * FROM nom_table where nom_colonne1=2 ORDER
BY nom_colonne2 DESC
Explication
trie selon l’ordre de la table des caractères ASCII (chiffre,

capitale, bas de casse…)
LIMIT
Limite le résultat de la requête à un certain nombre de lignes
Syntaxe :
LIMIT nombre_de_lignes
Options
LIMIT [ligne_de_début,] nombre_de_lignes
Exemple
SELECT * FROM nom_table where nom_colonne1=2 LIMIT
2, 30
Explication
Les lignes sont numérotées à partir de 0
Voici encore quelques clauses :
Tab. 4.11 : Quelques clauses
Clause Description
AS Désigne une donnée par un alias.
LIKE Permet une recherche sur une partie de la valeur du
champ avec des caractères génériques comme % ou _.
RLIKE Permet une recherche avec des expressions
rationnelles.
4
MySQL en action
154 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
$sql="select COUNT(*) as compte, pays.nom as nation from membres,
pays where pays.code=membres.pays GROUP BY nation";
$resultat=@mysql_query($sql,$id_link);
while($rang=@mysql_fetch_array($resultat)){
$nation=$rang[’nation’];
$compte=$rang[’compte’];

echo "<TR><TD><font face=\"Tahoma, Arial\" size=\"1\">$nation :
</font></td><TD>
<font face=\"Tahoma, Arial\" size=\"1\">$compte</font></td></tr>";
}
Dans ce programme, vous considérez le nombre de membres de votre club
par pays.
Nous utilisons la fonction COUNT(*) pour compter le nombre de lignes qui
sont ensuite regroupées par pays, ce qui nous donne le nombre de
membres par pays. Nous utilisons AS pour donner un alias au nombre et
un autre au pays. Nous définissons le champ avec la table, ainsi
pays.code désigne le champ code dans la table pays.
Voici une requête composée avec LIKE :
$sql="select COUNT(*) as compte from membres, pays where
membres.nom_usage LIKE ’b%’";
Dans cette requête, % remplace plusieurs caractères. Ainsi la recherche se
fait sur le nombre de membres dont le nom d’usage commence par b.Si
nous avions utilisé ’%b%’, la requête aurait demandé à la base de trouver
un nom d’usage comportant la lettre b. Le caractère _, lui, remplace un
seul caractère.
$sql="select COUNT(*) as compte from membres, pays
where membres.nom_usage LIKE ’b___’";
Dans cette requête, nous avons inséré trois blancs soulignés, cela signifie
que nous comptons le nombre de membres dont le nom d’usage
commence par b et comprend quatre lettres.
Au cours des chapitres suivants, vous retrouvez ces fonctions dans
diverses applications.
Récapitulation de la syntaxe des requêtes
Double Poche PHP & MySQL • 155
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
4.14

Les procédures stockées
Avec sa version 5, MySQL propose l’utilisation de procédures stockées.
Ce type de fonctionnalité économise du code PHP et rend les requêtes
réutilisables. Cela crée une sorte d’interface entre la base de données et le
script. La commande est compilée sur le serveur et est alors disponible
pour des requêtes. L’application PHP appelle la procédure en lui envoyant
de nouveaux paramètres, celle-ci s’exécute en une fois et renvoie un
résultat. L’opération est plus rapide qu’une requête envoyée simplement
par une fonction PHP car la requête n’a besoin d’être analysée qu’une
seule fois. Cette version répondra à la norme SQL 2003.
4.15
SQLite
SQLite est proposée avec la version 5 de PHP. C’est une base de données
sans serveur. Elle se sert de fichiers pour stocker ses données, ce qui la
rend très rapide et très simple à mettre en place. Le fichier est verrouillé
pour toute requête pendant un accès en écriture, ce qui rend SQLite
impropre à une utilisation comportant de nombreux accès écriture.
Une des particularités de SQLite est que vous pouvez créer une base dans
la mémoire pour faire une opération pendant la durée de votre script.
$db = sqlite_open(’:memory:’);
Imaginons que vous désirez proposer les codes postaux français sur votre
site.
$commune=$_POST[’commune’];
if ($commune){
$db = sqlite_open(’codesPostaux.db’);
// cette fonction ouvre une base existante ou en crée
// une si elle n’existe pas
$sql = "SELECT commune, codepostal from liste where commune LIKE
’%$commune%’";
$resultat = sqlite_query($db, $sql );

echo "Résultats trouvés :<UL>"
while ($rang = sqlite_fetch_array($resultat)){
$commune=$rang[’commune’];
$codepostal=$rang[’codepostal’];
echo "<LI>$commune $codepostal</LI>"
}
echo "<UL>"
sqlite_close($db);
4
MySQL en action
156 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
}
echo <form method=\"post\" action=\"$PHP_SELF\">";
echo ’Tapez le nom de la commune<input name="commune" size="20">
<input type="submit" value="Chercher">
</form>’;
Les droits sur votre répertoire de base de données
N’oubliez pas de donner des droits d’écriture à votre réper-
toire de travail.
Cette base est très facile à monter et comporte de nombreuses fonction-
nalités comme la possibilité de faire des requêtes imbriquées pour des
tables jointes par exemple dans le cas d’un catalogue de livre où la
collection est représenté par un numéro qui est reporté dans une table
collections avec le nom en clair :
SELECT titre FROM catalogue WHERE collection =
(SELECT code FROM collections WHERE nom = ’e-poche’)
ou
SELECT catalogue.titre FROM catalogue, collections
WHERE catalogue.collection = collection.code

AND collection.nom = ’e-poche’
Un autre des traits de SQLite est la possibilité d’y enregistrer des
fonctions PHP. Par exemple, vous pouvez décider, pour continuer l’exem-
ple précédent de glisser une espace dans le code postal pour mettre en
valeur le numéro de département comme par exemple 35 270
function formater_codepostal($codepostal) {
return substr_replace($codepostal, ’ ’, 2, 0);
}
sqlite_create_function($db, ’format_code’, ’ formater_codepostal’, 1);
$rangs = sqlite_array_query($db, ’SELECT format_code(’codepostal’)
from ’codePostaux.db’);
Cette présentation succincte sert d’introduction à cette base de données
qui propose avec simplicité un certain nombre de fonctionnalités très
utiles tout en ayant une capacité de 2 téraoctets. Elle est adéquate pour
tout site web moyen, c’est-à-dire la grande majorité des sites.
SQLite
Double Poche PHP & MySQL • 157
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
5
Le PHP
et l’approche
objet
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Le langage PHP, rappelez-vous, est un langage procédural, c’est-à-dire
que l’application parcourt le fichier PHP ligne à ligne, de droite à gauche,
lisant les instructions au fur et à mesure d’une manière linéaire. PHP 4 a
intégré la programmation objet d’une façon hybride, c’est-à-dire sans en
intégrer toutes les implications. En PHP 4, on peut éviter d’utiliser la
programmation objet et programmer ce que l’on veut. Si maintenant vous

désirez exploiter les nouvelles possibilités de PHP 5, qui a particulière-
ment développé cet aspect, il vous faut en comprendre les multiples
aspects.
Nous verrons les différences de conception entre PHP 4 et PHP 5 en fin de
chapitre pour ne pas nuire à la clarté de l’explication.
Pourquoi vouloir encombrer PHP avec une option qui lui est étrangère,
telle que celle d’objet ?
m
Figure 5.1 : Langage procédural
5
Le PHP et l’approche objet
160 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
5.1
Qu’est-ce que l’objet ?
Le livre que vous tenez en main est un objet ; le siège sur lequel vous êtes
probablement assis est un objet. C’est un élément autonome et entier avec
des propriétés et des fonctions.
C’est une capsule percée de plusieurs ouvertures. Ces capsules sont des
unités indépendantes du contexte dans lequel elles sont utilisées, elles
peuvent donc être utilisées dans tous les contextes. Vous pouvez voir ces
capsules comme des briques de programme. Ces bouts de programmes
sont donc autonomes.
La classe est le modèle, et l’objet est une création à partir de ce modèle
(une instance). La classe est le prototype et l’objet, son application dans
des situations concrètes.
Cet objet a des propriétés ou des attributs. Ces propriétés sont portées par
des variables à l’intérieur de la classe. Les fonctions ou méthodes de la
classe concernent les actions traitées par cette classe. Une des fonctions de
la civilisation est de classer différents objets.

m
Figure 5.2 : Langage à objets
Qu’est-ce que l’objet ?
Double Poche PHP & MySQL • 161
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Pour créer une classe, il faut d’abord modéliser un objet, c’est-à-dire
distinguer et choisir les différentes propriétés et méthodes dont vous avez
besoin pour le générer.
Prenons l’objet deux-roues ; nous allons énumérer les différentes proprié-
tés qui le distinguent d’un autre deux-roues :
¶ la couleur ;
¶ la taille ;
¶ l’état.
Examinons la liste. La dernière propriété est de moins en moins
pertinente, nous l’enlèverons donc de notre liste.
On peut déjà créer une classe deux_roues
class deux_roues {
var $couleur;
var $taille=’adulte’;
var $etat="est arrêté";
function deux_roues ($couleur, $taille, $etat){
$this-> couleur = $couleur;
$this-> taille = $taille;
$this-> etat = $etat;
}
function affiche (){
echo "mon deux-roues ".$this->couleur." ". $this->etat. ". Il est
de taille " . $this->taille. " et de type " . $this->type. "
avec ".$this->nbreVitesses. " vitesses.";
}

function rouletil (){
$this->etat;
setlocale (LC_ALL, ’fr_FR’);
$moment=strftime ("%A %e %B %Y à %H %M");
$this->moment=$moment;
echo "Ce deux-roues".$this->etat."$moment";
}
}
Nous avons ici une classe avec les attributs et la méthode deux_roues().
Comme vous l’avez remarqué, cette méthode porte le même nom que la
classe, ce qui la désigne comme constructeur. Cette méthode va servir à
construire l’objet quand la classe sera appelée avec la méthode new().
5
Le PHP et l’approche objet
162 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
À l’intérieur de la fonction, nous employons la variable this accompa-
gnée de l’opérateur −>. La variable this est une variable passe-partout
qui évite de donner à chaque fois un nom pour une variable qui est locale
à la classe et donc temporaire. L’opérateur −> référence une classe, une
méthode ou une propriété d’une classe.
Pour appeler l’objet deux_roues :
include("deux_roues_class.php");
$mondeux_roues=new deux_roues(’vert’, ’enfant’, ’roule’);
echo "Mon deux-roues est ".$mondeux-roues ->couleur;
echo "Mon deux-roues ". $mondeux-roues ->rouletil();
La première ligne inclut la classe deux_roues. Il est conseillé de mettre
une seule classe par fichier pour pouvoir s’y retrouver par la suite.
La deuxième ligne appelle la classe deux_roues pour en créer une
instance nommée $mondeux_roues à laquelle j’envoie des attributs.

Dans le cas du PHP 4, le programme crée une copie de l’objet. Cette
opération est consommatrice de ressources, ce qui ralentit l’opération. Le
second problème est que vous agissez non pas sur l’objet lui-même mais
sur sa copie.
5.2
L’héritage
Dans la catégorie, il existe plusieurs types d’objets comme vélo, moto.
Ces objets sont dérivés de l’objet deux-roues. La classe deux-roues est la
classe parente de la classe vélo, qui est une classe dérivée.
Avec le PHP 4, une classe ne peut hériter que d’une seule classe parente.
Les héritages se font avec le mot clé ’ extends ’. La classe dérivée hérite
des propriétés et des méthodes de la classe parente tout en ayant la
possibilité d’ajouter les siennes.
class velo extends deux_roues{
var $nbreVitesses=18;
var $type="VTT";
function velo ($nbreVitesses, $type){
$this-> nbreVitesses = $nbreVitesses;
$this-> type = $type;
$this-> etat = $etat;
L’héritage
Double Poche PHP & MySQL • 163
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
}
}
Pour appeler cette classe dérivée :
include("deux_roues_class.php");
include("velo_class.php");
$monvelo=new velo ();
$monvelo->etat = "roule";

$monvelo->couleur = "rouge";
$monvelo->taille = "adulte";
$monvelo->nbreVitesses = "12";
$monvelo->type = "VTC";
echo "mon vélo ".$monvelo->couleur." ".$monvelo->etat.". Il est de
taille ".$monvelo->taille." et de type ".$monvelo->type." avec
"$monvelo->nbreVitesses." vitesses.".";
Si la classe dérivée contient une propriété ou une méthode contenue dans
la classe parente alors c’est la méthode ou la propriété cette classe dérivée
qui prévaut sur celles de la classe parente.
class velo extends deux_roues{
var $nbreVitesses=18;
var $type="VTT";
function velo ($nbreVitesses, $type){
$this-> nbreVitesses = $nbreVitesses;
$this-> type = $type;
$this-> etat = $etat;
$this-> identite="mon velo ";
}
function affiche (){
echo $this->identite.$this->couleur." ". $this->etat .". Il est de
taille ". $this->taille ." et de type ". $this->type ." avec ".
$this->nbreVitesses . " vitesses.";
}
}
Nous utilisons ici une méthode du même nom, affiche(). Si nous
utilisons la méthode affiche() de la classe velo, nous n’avons plus
accès à la méthode affiche() de la classe deux_roues.
Maintenant, nous allons faire une classe vélomoteurs et motos.
class velomoteur extends deux_roues{

var $puissance=750;
var $type="routière";
var $marque="Honda";
function velomoteur ($puissance, $type, $marque){
5
Le PHP et l’approche objet
164 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
$this-> puissance = $puissance;
$this-> type = $type;
$this-> marque = $marque;
$this-> identite="ma moto ";
}
function affiche (){
echo $this->identite.$this->couleur." "
.$this->etat.". Il est de taille "
.$this->taille." et de type ".$this->type." avec "
.$this->nbreVitesses." vitesses.";
}
}
Cela va devenir plus difficile de s’y retrouver, et nous allons donc utiliser
un ersatz de surcharge avec une sorte d’interface.
5.3
Surcharger une méthode
Surcharger une méthode ou une propriété consiste, dans la programmation
objet, à donner le même nom à deux propriétés ou à deux méthodes ou
plus. Cette commodité est exploitée dans des langages typés dans la
mesure où ces différentes méthodes utilisent des données de type différent,
ou un nombre différent de paramètres, ce qui n’est pas possible en PHP 4
mais le devient en PHP 5. Pour les propriétés de même nom, il faut

qu’elles soient de type différent.
C’est pratique pour réunir dans une même classe les mêmes fonctions
avec des variantes pour des situations différentes sans pour autant créer
une classe dérivée.
En PHP 4, nous pouvons utiliser une astuce avec la fonction
func_num_args(), qui donne le nombre de paramètres envoyés à la
fonction. Ainsi, imaginons que les fonctions velo() et velomoteur()
soient à l’intérieur de la classe vehicule. Dans la méthode constructeur
de la classe vehicule, on inclut une sorte d’aiguillage conditionné par le
nombre d’arguments.
class vehicule {
function vehicule() {
if (func_num_args()==2){
$name=’velo’;
$argument1=func_get_arg(0);
Surcharger une méthode
Double Poche PHP & MySQL • 165
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
$argument2=func_get_arg(1);
$this->$name($argument1, $argument2);
}
elseif (func_num_args()==3){
$name=’velomoteur’;
$argument1=func_get_arg(0);
$argument2=func_get_arg(1);
$argument3=@func_get_arg(2);
$this->$name($argument1, $argument2, $argument3);
}
}
function velomoteur ($puissance, $type, $marque){

$this-> puissance = $puissance;
$this-> type = $type;
$this-> marque = $marque;
$this-> identite="ma moto ";
}
function velo ($nbreVitesses, $type){
$this-> nbreVitesses = $nbreVitesses;
$this-> type = $type;
$this-> etat = $etat;
$this-> identite="mon velo ";
}}
/* ensuite vous appelez la classe vehicule pour créer un objet
véhicule avec la méthode velo().*/
$monvelo=new vehicule("18", "VTT");
Ce type de procédé rend la classe plus simple à utiliser.
5.4
Le polymorphisme
Le polymorphisme se définit comme la possibilité pour un objet de
déterminer la méthode à invoquer selon l’objet passé comme argument.
Cette action est gérée au vol, en temps réel.
Dans les exemples précédents, nous avons la classe velo et la classe
velomoteur ainsi que la classe parente deux_roues avec pour chacune la
méthode affiche() . Le polymorphisme nous évite de choisir, le
programme le fait pour nous.
$obj1=new velo(18, "VTT");
$obj2=new velomoteur (750, "trial", "Suzuki");
$deux_roues ->affiche($obj1);
$deux_roues ->affiche($obj2);
5
Le PHP et l’approche objet

166 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
5.5
Passer un argument par référence
Avec PHP 4, l’argument passé à une fonction contient par défaut la copie
de la variable, ce qui pose un problème si vous modifiez cette variable.
Référence et valeur
Quand vous créez une variable, le système alloue une case
mémoire pour contenir la valeur de la variable. Quand vous
passez une valeur à une fonction ou à une méthode, le programme
copie la valeur de cette variable en laissant la variable originale intacte.
En revanche, quand vous passez une variable par référence, la valeur
qui est passée à la méthode est l’adresse de l’original ; donc, les
modifications à l’intérieur de cette méthode sont faites sur le contenu de
la case mémoire originale, directement sur la source.
Pour qu’un argument soit toujours passé par référence à une fonction,
ajoutez une esperluette devant l’argument dans la fonction :
function convertir_dollar_vers_euro (&$prix) {
$prix=(float)$prix;
$prix*=0.8;
$prix .= ’5’;
}
$phrase= ’Cet article vaut ’;
$prix=’15$’;
convertir_dollar_vers_euro ($prix);
$phrase.= $prix;
echo $phrase; // résultat ’’Cet article vaut 125"
Pour qu’un argument soit passé par défaut à une fonction qui ne le fait pas
par défaut, ajoutez une esperluette devant l’argument dans l’appel à la
fonction :

function convertir_dollar_vers_euro ($prix) {
$prix=(float)$prix;
$prix*=0.8;
$prix .= $prix.’5’;
}
$phrase= ’Cet article vaut ’;
$prix=’15$’;
convertir_dollar_vers_euro ($prix);
$phrase.= $prix;
Passer un argument par référence
Double Poche PHP & MySQL • 167
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
echo $phrase; // résultat ’’Cet article vaut 15$"
/*il n’a pas été converti, c’est sa copie interne à la fonction qui a
été convertie */
convertir_dollar_vers_euro (&$prix);
echo $phrase; // résultat ’’Cet article vaut 125"
5.6
PHP 5 et l’objet
PHP 5 rejoint Java comme langage objet en s’enrichissant des fonction-
nalités d’un vrai langage objet, le rendant ainsi plus rigoureux, reproduc-
tible et plus propre.
Le pointeur
PHP 5 n’utilise plus la copie de l’argument comme PHP 4 mais se sert
d’un pointeur (handle) du type de celui utilisé pour les fichiers. Pour
continuer à utiliser les objets comme dans PHP 4, vous disposez de la
méthode induite _clone().
Les privilèges
Les privilèges d’accès aux méthodes et aux propriétés sont de trois types :
¶ private conditionne l’accès à la méthode ou à la propriété pour les

méthodes de la classe.
¶ protected conditionne l’accès à la méthode ou à la propriété pour les
méthodes de la classe ou des classes héritières ou dérivées.
¶ public ouvre l’accès à la méthode ou à la propriété pour toutes les
classes.
private $machambre;
protected function cloturer ()
Le constructeur et le destructeur
Le constructeur est la méthode qui permet à la classe de construire l’objet.
Dans PHP 4, elle est homonyme à la classe ; dans PHP 5, elle se nommera
_construct() ou sera homonyme.
5
Le PHP et l’approche objet
168 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
De la même manière, la méthode _destruct() permet de détruire l’objet.
D’autres fonctionnalités enrichissent cette version, qui révolutionne l’ap-
proche du développeur PHP. Nous les développons encore dans les
quelques chapitres suivants, en particulier dans le chapitre intitulé
Parsez-vous XML ?
PHP 5 et l’objet
Double Poche PHP & MySQL • 169
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×