Tutoriel PHP

ACCUEIL PHP Introduction PHP Installation PHP Syntaxe PHP Commentaires PHP Variables PHP Écho PHP / Impression Types de données PHP Chaînes PHP Numéros PHP Mathématiques PHP Constantes PHP Opérateurs PHP PHP Si... Sinon... Sinon Commutateur PHP Boucles PHP Fonctions PHP Tableaux PHP Superglobales PHP Expression régulière PHP

Formulaires PHP

Gestion des formulaires PHP Validation de formulaire PHP Formulaire PHP requis URL/courriel du formulaire PHP Formulaire PHP terminé

PHP Avancé

Date et heure PHP Inclure PHP Gestion des fichiers PHP Fichier PHP Ouvrir/Lire Création/écriture de fichier PHP Téléchargement de fichier PHP Cookies PHP Séances PHP Filtres PHP Filtres PHP avancés Fonctions de rappel PHP PHPJSON Exception PHP

POO PHP

PHP Qu'est-ce que la POO Classes/Objets PHP Constructeur PHP Destructeur PHP Modificateurs d'accès PHP Héritage PHP Constantes PHP Classes abstraites PHP Interface PHP Caractéristiques PHP Méthodes statiques PHP Propriétés statiques PHP Espaces de noms PHP Itérables PHP

Base de données MySQL

Base de données MySQL Connexion MySQL Créer une base de données MySQL Créer une table MySQL MySQL Insérer des données MySQL obtenir le dernier ID MySQL Insérer plusieurs MySQL préparé MySQL Sélectionner les données MySQL Où Trier MySQL par MySQL Supprimer les données Données de mise à jour MySQL Données de limite MySQL

XML PHP

Analyseurs PHP XML Analyseur PHP SimpleXML PHP SimpleXML - Obtenir Expatriation PHP XML PHP XML DOM

PHP -AJAX

Introduction à AJAX PHP AJAX Base de données AJAX XML AJAX Recherche en direct AJAX Sondage AJAX

Exemples PHP

Exemples PHP Compilateur PHP Questionnaire PHP Exercices PHP Certificat PHP

Référence PHP

Présentation de PHP Tableau PHP Calendrier PHP Date PHP Annuaire PHP Erreur PHP Exception PHP Système de fichiers PHP Filtre PHP FTP PHP PHPJSON Mots clés PHP PHP LibxmlComment Messagerie PHP Mathématiques PHP Divers PHP PHP MySQL Réseau PHP Contrôle de sortie PHP Expression régulière PHP PHP SimpleXML Flux PHP Chaîne PHP Gestion des variables PHP Analyseur PHP XML Code postal PHP Fuseaux horaires PHP

PHP POO - Caractéristiques


PHP - Qu'est-ce qu'un trait ?

PHP ne supporte que l'héritage unique : une classe enfant ne peut hériter que d'un seul parent.

Alors, que se passe-t-il si une classe doit hériter de plusieurs comportements ? Les traits POO résolvent ce problème.

Les traits sont utilisés pour déclarer des méthodes qui peuvent être utilisées dans plusieurs classes. Les traits peuvent avoir des méthodes et des méthodes abstraites qui peuvent être utilisées dans plusieurs classes, et les méthodes peuvent avoir n'importe quel modificateur d'accès (public, privé ou protégé).

Les traits sont déclarés avec le mot- trait clé :

Syntaxe

<?php
trait TraitName {
  // some code...
}
?>

Pour utiliser un trait dans une classe, utilisez le mot- use clé :

Syntaxe

<?php
class MyClass {
  use TraitName;
}
?>

Regardons un exemple :

Exemple

<?php
trait message1 {
public function msg1() {
    echo "OOP is fun! ";
  }
}

class Welcome {
  use message1;
}

$obj = new Welcome();
$obj->msg1();
?>

Exemple expliqué

Ici, nous déclarons un trait : message1. Ensuite, nous créons une classe : Welcome. La classe utilise le trait et toutes les méthodes du trait seront disponibles dans la classe.

Si d'autres classes ont besoin d'utiliser la fonction msg1(), utilisez simplement le trait message1 dans ces classes. Cela réduit la duplication de code, car il n'est pas nécessaire de redéclarer la même méthode encore et encore.



PHP - Utilisation de plusieurs traits

Prenons un autre exemple :

Exemple

<?php
trait message1 {
  public function msg1() {
    echo "OOP is fun! ";
  }
}

trait message2 {
  public function msg2() {
    echo "OOP reduces code duplication!";
  }
}

class Welcome {
  use message1;
}

class Welcome2 {
  use message1, message2;
}

$obj = new Welcome();
$obj->msg1();
echo "<br>";

$obj2 = new Welcome2();
$obj2->msg1();
$obj2->msg2();
?>

Exemple expliqué

Ici, nous déclarons deux traits : message1 et message2. Ensuite, nous créons deux classes : Welcome et Welcome2. La première classe (Welcome) utilise le trait message1 et la deuxième classe (Welcome2) utilise à la fois les traits message1 et message2 (plusieurs traits sont séparés par une virgule).