07-02-2008, 08:50 PM
Raoull a écrit :pascaltje, il ya un truc, même 2, que je cerne pas dans ce que tu as dit :
1) Si tu modifie une méthode dans une classe et/ou que tu rajoute une propriété à ta classe, tu es bien obligé de parcourir tout ton code pour insérer cette propriété et/ou cet argument à la fonction.
2)je ne comprends pas ton exemple, même avec une structure comme celle que tu donnes, je ne vois pas comment je peux passer de :
fonction verifierDonnees($login, $mail, $pass, $pass_confirmation, $race)
à
fonction verifierDonnees()
il faut bien passer les arguments à un moment ou à un autre... si tu ne les passe pas directement à l'appel de ta fonction, tu dois les passer avant, en settant chaque propriétés ($inscription->race='trucmuche')
ca revient au meme, ou bien il ya un truc qui m'a complètement échapper...
1. non, en fait c'est caché ( = encapsulé ) dans la fonction d'initialisation de l'objet.
mais ce n'est pas exactement le même code qu'harparine :
Code PHP :
<?php
// pas top, on doit ajouter $race dans le script
$joueur = new Joueur($login, $mail, $pass, $pass_confirmation, $race);
// cool, en passant un tableau à la méthode, on ne modifie rien du script
$joueur = new Joueur($_POST);
avce ça on modifie :
_ le formulaire : ajout du champ 'race'
_ la classe :
- ajout du champ public $race;
- méthode Joueur() ou __construct(), on gére la récupération de l'index 'race', pas de modif de signature
- méthode verifierDonnees() : on vérifie la race en plus des autres données ( champ $this->race dans l'objet )
2. les arguments sont des membres de l'objet, donc ils sont déjà là, plus besoin de les passer lors de l'appel de verifierDonnees().
c'est la magie de l'encapsulation
A+
Pascal