Constructeur
Le constructeur est la fonction qui est appel�e automatiquement par la classe lorsque vous cr�ez une nouvelle instance d'une classe � l'aide de l'op�rateur new. La fonction constructeur a le m�me nom que la classe. Une fonction devient le constructeur si elle porte le m�me nom que la classe. Si une classe n'a pas de constructeur, le constructeur de la classe de base sera appel�, s'il existe.
<?php
class Auto_Panier extends Panier {
function Auto_Panier () {
$this->add_item ("10", 1);
}
}
?>
L'exemple ci-dessus d�finit la classe Auto_Panier qui h�rite de la classe Panier et d�finit le constructeur 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.
<?php
class Constructor_Cart extends Cart {
function Constructor_Cart($item = "10", $num = 1) {
$this->add_item ($item, $num);
}
}
// Cr�ation du Panier
$default_cart = new Constructor_Cart;
// Cr�ation d'un vrai Panier
$different_cart = new Constructor_Cart("20", 17);
?>
Vous pouvez �galement utiliser l'op�rateur @ pour emp�cher les erreurs survenant dans le constructeur de s'afficher, e.g. @new.
<?php
class A
{
function A()
{
echo "Je suis le constructeur de A.<br />\n";
}
function B()
{
echo "Je suis une fonction standard appel�e B dans la classe A.<br />\n";
echo "Je ne suis pas le constructeur de A.<br />\n";
}
}
class B extends A
{
}
// Cette syntaxe va appeler B() comme constructeur.
$b = new B;
?>
La fonction B() de la classe A va soudainement devenir le constructeur de la classe B, bien qu'il n'ait pas �t� pr�vu pour. PHP 4 ne se soucie gu�re si la fonction est d�finie dans la classe B ou si elle a �t� h�rit�e.
PHP n'appelle pas 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.
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. Vous devez utiliser la fonction register_shutdown_function() � la place pour simuler la plupart des effets des destructeurs.