Constructor
: constructeur
Attention
|
En
PHP
3
et
PHP
4
,
les
constructeurs
se
comportent
différemment
.
La
sémantique
de
PHP
4
est
fortement
recommandée
.
|
Le
constructeur
est
la
fonction
qui
est
appelée
automatiquement
par
la
classe
lorsque
vous
créez
une
nouvelle
instance
d'
une
classe
a
l'aide
de
l
'opérateur
new
.
La
fonction
constructeur
a
le
même
nom
que
la
classe
.
En
PHP
3
,
une
fonction
devient
le
constructeur
si
elle
porte
le
même
nom
que
la
classe
.
En
PHP
4
,
une
fonction
devient
un
constructeur
si
elle
porte
le
même
nom
que
la
classe
dans
laquelle
elle
est
définit
.
La
différence
est
subtile
,
mais
cruciale
.
L
'
exemple
ci-dessus
définit
la
classe
Auto_Caddie
qui
hérite
de
la
classe
Caddie
et
définit
le
construteur
de
la
classe
.
Ce
dernier
initialise
le
panier
avec
1
article
de
type
numéro
10
dès
que
l'
instruction
"new
"
est
appelée
.
La
fonction
constructeur
peut
prendre
ou
non
des
paramètres
optionnels
,
ce
qui
la
rend
beaucoup
plus
pratique
.
Pour
pouvoir
utiliser
cette
classe
sans
paramètre
,
tous
les
paramètres
du
constructeurs
devraient
être
optionnels
,
en
fournissant
une
valeur
par
défaut
,
comme
ci-dessous
.
Attention
|
En
PHP
3
,
les
classes
dérivées
et
les
constructeurs
ont
un
certains
nombre
de
limitations
.
Les
exemples
suivants
doivent
être
lus
avec
beaucoup
d
'
attention
pour
comprendre
ces
limitations
.
|
En
PHP
3
,
aucun
constructeur
ne
sera
appelé
dans
l
'
exemple
ci-dessus
.
La
règle
en
PHP
3
est
:
'
Un
constructeur
est
une
fonction
qui
a
le
même
nom
que
la
classe
'
.
Le
nom
de
la
classe
est
B
,
et
il
n'
y
a
pas
de
fonctions
qui
s'appelle
B(
)
dans
la
classe
B
.
Rien
ne
se
passe
.
Ceci
est
corrigé
en
PHP
4
,
avec
l'
introduction
d
'une
nouvelle
règle
:
Si
une
classe
n'
a
pas
de
constructeur
,
le
constructeur
de
la
classe
de
basse
est
appelé
,
s
'il
existe
.
L'
exemple
ci-dessus
affichera
'Je
suis
le
constructeur
de
A
.
br
'
en
PHP
4
.
En
PHP
3
,
la
fonction
B(
)
de
la
classe
A
va
soudaiement
devenir
le
constructeur
de
la
classe
B
,
bien
qu'il
n
'ai
pas
été
prévu
pour
.
La
règle
de
PHP
3
est
'
Un
constructeur
est
une
fonction
qui
a
le
même
nom
que
la
classe
'
.
PHP
3
ne
se
soucie
guère
si
la
fonction
est
définie
dans
la
classe
B
ou
si
elle
a
été
héritée
.
Ceci
est
corrigé
en
PHP
4
,
avec
l'
introduction
d'une
nouvelle
règle
:
'Un
constructeur
est
une
classe
de
même
nom
,
définit
dans
la
classe
elle-même
'
.
Donc
,
en
PHP
4
,
la
classe
B
n'
a
pas
de
constructeur
par
elle-même
,
et
le
constructeur
de
la
classe
A
aura
été
appelé
,
affichant
:
'Je
suis
le
constructeur
de
A
.
br
'
.
Attention
|
Ni
PHP
3
ni
PHP
4
n
'
appelle
automatiquement
le
constructeur
de
la
classe
supérieure
depuis
le
constructeur
de
la
classe
dérivée
.
Il
est
de
votre
responsabilité
de
propager
l
'
appel
des
constructeurs
.
|
Il
n
'
y
a
pas
de
destructeurs
en
PHP
3
et
PHP
4
.
Vous
pouvez
utiliser
la
fonction
register_shutdown_function(
)
à
la
place
,
pour
simuler
un
destructeur
.
Les
destructeurs
sont
des
fonctions
qui
sont
appelées
lorsqu'
un
objet
est
détruit
,
soit
avec
la
fonction
unset(
)
Les
destructeurs
sont
des
fonctions
qui
sont
appelées
lorsqu'un
objet
est
détruit
,
soit
avec
la
fonction
unset(
)
soit
par
simple
sortie
d'une
fonction
(cas
des
variables
locales
)
.
Il
n
'
y
a
pas
de
destructeurs
en
PHP
.