Cours par Webcam

Cours par Webcam

Formateur Web pour adultes depuis plus 11 ans, je vous propose des COURS collectifs par WEBCAM en LIVE pour booster vos connaissances et être autonome dans la création de site.

En savoir plus

PHP - Bases

PHP - Algorithmie

PHP - Chaîne

PHP - Tableau

PHP - Formulaires

PHP - Fonctions Usuelles

Données entres pages

Environnement et Interaction

PHP objet (POO)

Facebook
Twitter
LinkedIn

POO, manipuler les objets

La Classe est la définition abstraite d’un objet. Elle définit la structure de chaque objet qu’on va pouvoir créer. C’est comme un moule qu’on va utiliser pour produire les objets. Chaque objet va donc posséder la même structure que le ‘moule’.

Créer un objet

Lorsque que la classe est déclarer (le moule est prêt), vous pouvez l’utiliser pour créer des objets. On dit que la classe instancie l’objet

L’opérateur new permet d’instancier un objet.

<?php
class Voiture{
    public $marque = "peugeot";
    public function demarrage(){
        echo "La voiture de marque ".$this->marque." démarre"; // la marque de lui-même
    }
}
$maVoiture = new Voiture(); // un objet
?>

Il est possible de créer plusieurs objets avec la même classe.

<?php
class Voiture{
    public $marque = "peugeot";
    public function demarrage(){
        echo "La voiture de marque ".$this->marque." démarre"; // la marque de lui-même
    }
}
$maVoiture = new Voiture();
$uneAutreVoiture = new Voiture(); // nouvel objet
?>

Les deux objets sont identiques (possèdent les mêmes propriétés et méthodes à la création) mais ce ne sont pas les mêmes (ils peuvent être manipulés différemment).

Accéder à une propriété

On peut accéder à une propriété de l’objet avec la syntaxe -> à appliquer sur l’objet. La propriété est appelée sans la signe $.

<?php
class Voiture{
    public $marque = "peugeot";
    public function demarrage(){
        echo "La voiture de marque ".$this->marque." démarre"; // la marque de lui-même
    }
}
$maVoiture = new Voiture();
echo $maVoiture->marque;
?>

Affichage

peugeot

Vous remarquez qu’on peut accéder à la même propriété au sein de la classe – dans la méthode demarrage() – avec la variable $this.

$this->marque

Le $this fait référence à l’objet lui-même.

Accéder à une méthode

On peut accéder à une méthode de l’objet avec la syntaxe -> à appliquer sur l’objet. La méthode est appelée sans la signe $ et avec les parenthèses ( ).

<?php
class Voiture{
    public $marque = "peugeot";
    public function demarrage(){
        echo "La voiture de marque ".$this->marque." démarre"; // la marque de lui-même
    }
}
$maVoiture = new Voiture();
$maVoiture->demarrage(); // appel de la méthode
?>

Affichage

La voiture de marque peugeot démarre

Passage d’une instance en paramètre

Vous pouvez faire passer, en argument d’une méthode de classe, un objet de la même classe en mentionnant le nom de la classe, suivi d’un espace, puis du nom de la variable objet (l’instance).

<?php
class Voiture{
    public $marque = "peugeot";
    public function demarrage(){
        echo "La voiture de marque ".$this->marque." démarre";
    }
    
    public function information(Voiture $objvoiture){ // instance de la classe en paramètre
        echo "Je suis une voiture de marque ".$this->marque;
    }
}
$maVoiture1 = new Voiture();
$maVoiture2 = new Voiture();
$maVoiture1->information($maVoiture2);
?>

Affichage

Je suis une voiture de marque peugeot

Il s’agit d’une déclaration de type (ici une instance de la classe), le type doit être ajouté avant le nom du paramètre. Cette déclaration impose que le paramètre soit d’un certain type lors de l’appel de la méthode.

Constante de débogage

A tout moment, dans une méthode, vous pouvez faire appel aux métaconstantes __CLASS__ et __METHOD__ . Elles retourneront les noms de la classe et de la méthode en cours d’exécution.

<?php
class Train {
    private $type;
    function avance(){
        echo 'classe : '.__CLASS__.'<br>methode : '.__METHOD__ ;
    }
}
$train = new Train();
$train->avance();  // affiche 'classe : Train - Train::avance'
?>

Affichage

classe : Train
methode : Train::avance

Il existe d’autres constantes magiques que vous pouvez consulter sur php.net.

Vérifier le type d’un objet

L’opérateur instanceof retourne TRUE si un objet a pour parent une classe donnée ou une sous-classe donnée.

<?php
class Velo {
}
$velo = new Velo();
if ($velo instanceof  Velo) {
    echo "C'est un vélo";
}
?>

Affichage

C'est un vélo

Il est possible de connaitre la classe exacte d’un objet et non pas son appartenance à une famille via la fonction get_class(). En fournissant un objet en paramètre, elle renvoie une chaîne de caractères contenant le nom de la classe à laquelle appartient l’objet.

<?php
class Moto {
    function name() {
        echo "Mon nom est " . get_class($this);
    }
}
$moto = new Moto();
 
// en externe
echo "Son nom est " . get_class($moto)."<br>";
 
// en interne
$moto->name();
?>

Affichage

Son nom est Moto
Mon nom est Moto

A lire aussi

tutowebdesign

Afficher du contenu au scroll

Afficher du contenu au scroll Voici un effet impressionnant et pourtant très facile à mettre en place sur vos pages. Le principe consiste à faire

Lire »