Essays.club - Dissertations, travaux de recherche, examens, fiches de lecture, BAC, notes de recherche et mémoires
Recherche

PHP, Graphe enchainement.

Par   •  29 Mai 2018  •  3 678 Mots (15 Pages)  •  411 Vues

Page 1 sur 15

...

en utilisant le symbole &. Voici un exemple qui illustre bien le problème :

<?php

class compte

{

var $montant ;

function virer($valeur,&$destination)

{

$this->montant-=$valeur ;

$destination->montant+=$valeur ;

}

function afficher()

{

echo "montant=$this->montant<br>" ;

}

}

$compte1=new compte ;

$compte2=new compte ;

$compte1->montant=1000 ;

$compte2->montant=1000 ;

echo "compte1 :<br>" ;

$compte1->afficher() ;

echo "compte2 :<br>" ;

$compte2->afficher() ;

$compte1->virer(100,$compte2) ;

echo "compte1 :<br>" ;

$compte1->afficher() ;

echo "compte2 :<br>" ;

$compte2->afficher() ;

?>

Si vous omettez le signe & devant le paramêtre $destination, PHP affichera :

compte1 :

montant=1000

compte2 :

montant=1000

compte1 :

montant=900

compte2 :

montant=1000

Alors qu’en PHP5 (ou en PHP4 avec le &) on a :

compte1 :

montant=1000

compte2 :

montant=1000

compte1 :

montant=900

compte2 :

montant=1100

Auteur: Hubert Frauensohn PHP: classes 3/16

IUT de Metz - 2e année Support de cours

1.6 L’héritage.

Il est bon de définir des classes génériques, qui pourront être réutilisées et adaptées à tous vos projets. Pour

faciliter cela, une classe peut être une extension d’une autre classe. La classe dérivée hérite alors de toutes les

méthodes et variables de la classe de base, mais peut définir ses propres fonctions et variables, qui s’ajouteront.

Une classe ne peut hériter que d’une seule autre classe, et l’héritage multiple n’est pas supporté. Les héritages

se font avec le mot clé extends. Prenons pour exemple une classe Etudiant dérivée de la classe Personne qui

possède les mêmes variables que la classe Personne et la variable $etablissement en plus, ainsi que la fonction

setEtablissement() :

class Personne

{

var $prenom ;

var $nom ;

function Personne($prenom=’John’, $nom=’Doe’)

{

$this->prenom = $prenom ;

$this->nom = $nom ;

}

function info()

{

return "$this->prenom $this->nom" ;

}

}

class Etudiant extends Personne

{

var $etablissement ;

function setEtablissement($nomEt)

{

$this->etablissement = $nomEt ;

}

}

$etud=new Etudiant(’Jacques’,’Fillon’) ;

$etud->setEtablissement(’IUT de Metz’) ;

echo $etud->info() ; // appel d’une fonction membre de la classe de base

Si une classe n’a pas de constructeur, le constructeur de la classe de base est appelé, s’il existe. Ici le script

affiche :

Jacques Fillon

ce qui prouve que le constructeur de la classe personne est appelé.

Si vous rajoutez un constructeur (nommé ici Etudiant()), celui-ci sera appelé lors de la création de l’objet de

classe Etudiant, mais l’appel automatique du constructeur de la classe de base ne se fait pas automatiquement ;

avec la même classe de base :

Auteur: Hubert Frauensohn PHP: classes 4/16

IUT de Metz - 2e année Support de cours

class Etudiant extends Personne

{

var $etablissement ;

function setEtablissement($nomEt)

{

$this->etablissement = $nomEt ;

}

}

function Etudiant()

{

$this->etablissement=’inconnu’ ;

}

$etud=new

...

Télécharger :   txt (29.7 Kb)   pdf (83.8 Kb)   docx (32.9 Kb)  
Voir 14 pages de plus »
Uniquement disponible sur Essays.club