L'intérêt des classes par rapport aux fonctions simples, est que les variables gardent automatiquement leurs valeurs dans les instances respectives:
Code :
<?php
class Bistrot
{
var $NomBreClient;
}
$CafeDeLaGare = new Bistrot;
$SoleilLevant = new Bistrot;
$CafeDeLaGare->$NombreClient+=5;
$SoleilLevant->$NombreClient+=2;
$CafeDeLaGare->$NombreClient++;
echo $CafeDeLaGare->$NombreClient; // Affiche 6
echo $SoleilLevant->$NombreClient; // Affiche 2
?>
Il serait donc possible, dans le cas de notre bistrot, de gerer deux commandes en meme temps...
Imaginons, dans notre classe bistrot, une fonction ajouteclient:
Code :
function AjouteClient()
{
$NombreClient++
}
On pourrait penser que en chargeant la fonction de la classe, cela va incrémenter ajouteclient de 1.
Mais, en aucun cas cela ne le fera, car $nombreclient est considéré comme une variable locale.
En revanche l'incrémentation de l'exemple précédent fonctionnera.
Il existe tout de meme uhne maniere de faire une incrémentation automatique, avec this->:
Code :
<?php
class Bistrot
{
var $NombreClient;
function AjouteClient()
{
$this->$NombreClient++;
}
function EnleveClient()
{
$this->$NombreClient--;
}
}
$CafeDeLaGare = new Bistrot;
$CafeDeLaGare->AjouteClient();
$CafeDeLaGare->AjouteClient();
$CafeDeLaGare->EnleveClient();
echo $CafeDeLaGare->$NombreClient //Affiche bien 1
?>
les classes 3e partie