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, visibilité d’une classe

La visibilité permet de définir le champ d’utilisation des propriétés et des méthodes d’une classe. Il existe trois niveaux de visibilité :

public : propriétés ou méthodes accessibles au niveau de l’objet , de la classe et des classes étendues (extends).

class Bouteille{
    public $marque = "coca-cola";
}
$mabouteille = new Bouteille();
echo $mabouteille->marque;

Affichage

coca-cola

private : propriétés ou méthodes accessibles seulement au niveau de la classe qui les a défini mais pas au niveau des objets, ni au niveau des classes étendues (extends).

class Bouteille{
    private $marque = "coca-cola";
    public function info(){
        echo $this->marque;
    }
}
$mabouteille = new Bouteille();
echo $mabouteille->marque; // affiche une erreur
$mabouteille->info(); // affiche 'coca-cola'

Affichage

Fatal error: Cannot access private property Bouteille1::$marque
coca-cola

protected : propriétés ou méthodes accessibles au niveau de la classe qui les a défini, au niveau des classes étendues (extends), mais pas au niveau des objets.

class Bouteille{
    private $marque = "coca-cola";
    protected $volume = "1.5L";
    public function info(){
        echo $this->marque;
    }
}
class canette extends Bouteille{
    public function info(){
        echo $this->volume; // propriété accéssible dans la classe enfant
    }  
}
$unecanette= new canette();
echo $unecanette->volume; // affiche une erreur
$unecanette->info();

Affichage

Fatal error: Cannot access protected property canette::$volume
1.5L

final : si une méthode est définie comme final, elle ne pourra pas être surchargée par les classes filles. Si une classe est définie comme final, elle ne pourra pas être étendue.

final class Bouteille{
    private $marque = "coca-cola";
    protected $volume = "1.5L";
    public function info(){
        echo $this->marque;
    }
}
class canette extends Bouteille{ // erreur fatale
    
}

Affichage

Fatal error: Cannot redeclare class canette 

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 »