php4 et l'héritage

Jusqu'à présent, ma connaissance et mes compétances face à l'héritage était due à la programmation Java, et son application au php n'était que pure théorie (rappelez-vous)... Or, je viens de sauter le pas sous php4 (Version utilisée à mon stage).

Tout d'abord, même si le modèle objet de php4 (Différents de celui de php5) a ses limites, il n'en demeure pas moi "assez" puissant, facile à mettre en oeuvre et proche de celui du Java.

Cependant, on pourra déplorer certaines limitations :

  • Pas d'héritage multiple : Tout comme Java, mais est ce bien nécessaire ?
  • Pas de surcharge : Plus gênant, php choisis de rendre des paramètres d'une fonction facultatifs en leur donnant une valeur initial par défaut. Ainsi en lieu et place de :
[php]
function toto () {}
function toto ( paramètre ) {}

On aura :

[php]
function toto ( paramètre = null ) {}

Bien sur, la redéfinition, essence même de l'héritage est possible.

  • L'appel des fonctions de la sur-classe : php n'adopte pas l'appel super.fonction() comme Java mais une syntaxe moins simple :
[php]
super_classe::fonction()

Je vous tiendrais bien sûr au courant de l'avancé de ma découverte en tenant à jour ce billet ou en le déclinant en Part II. Rappelons pour finir que nous parlons ici de php 4.

3 réactions

  • De yossra De yossra - 24/05/2006, 16:41 #1

    pourrais je utiliser UML pour la modelisation et la conception d'une application web ecrite en php4, perl et CGI?

  • De LLaumgui De LLaumgui - 26/05/2006, 02:16 #2

    Oui, avec UML tu peux presque tout modéliser :-)

  • De bersace De bersace - 13/11/2008, 14:30 #3

    En PHP, on peut utiliser parent::fonctionDefinieDanslaClasseParente() au lieu de définir explicitement le nom de la classe parente, tout comme super. de Java.

    Étienne.

Attribution - Partage dans les Mêmes Conditions 4.0 International