<?php
 // === Trait Pers ===
 trait Pers {
   protected $nom    ;
   protected $prenom ;
   // Méthode abtraite
   abstract public function Affiche();
 }
 // === Classe Abstraite Personne ===
 abstract class Personne { 
   use Pers;
 }
 // === Classe Personnel ===
 class Personnel extends Personne
 { // -- Les propriétés--
   protected $matricule   ;
   // -- constructeur --
   function __construct($m,$n,$p)
   { $this->matricule = intval(trim($m))     ;
     $this->nom       = strtoupper(trim($n)) ;
     $this->prenom    = strtoupper(trim($p)) ;
   } 
   public function Affiche() {
     echo "Nom: ".$this->nom;
     echo "  -  Prénom: ".$this->prenom;
     echo "  -  Matricule: ".$this->matricule.PHP_EOL;
   } 
 }
 // === Programme ===
 $UnSalarie = new Personnel(324152,"martin","pierre") ;
 echo "--- Salarie ---".PHP_EOL;
 $UnSalarie->Affiche() ;//Méthode de la Classe Personnel
?>