Question sur les classe PHP
Fermé
nickleus
Messages postés
374
Date d'inscription
dimanche 20 janvier 2008
Statut
Membre
Dernière intervention
18 juin 2011
-
11 juin 2009 à 12:13
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 11 juin 2009 à 14:42
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 11 juin 2009 à 14:42
A voir également:
- Question sur les classe PHP
- Easy php - Télécharger - Divers Web & Internet
- Copain d'avant photo de classe - Forum Réseaux sociaux
- Retrouver la liste des élèves d'une classe - Forum Réseaux sociaux
- Bluetooth mercedes classe a 2005 - Forum Autoradio
- Php natif - Forum PHP
7 réponses
Xil
Messages postés
350
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
11 juin 2009
257
11 juin 2009 à 12:38
11 juin 2009 à 12:38
Bonjour,
C'est un cast sur le fait que le paramètre fourni lors de l'appel de la fonction test doit être un objet de la classe 'autre_classe'.
Tout comme on aurait pu mettre int, float, string,...
C'est un cast sur le fait que le paramètre fourni lors de l'appel de la fonction test doit être un objet de la classe 'autre_classe'.
Tout comme on aurait pu mettre int, float, string,...
nickleus
Messages postés
374
Date d'inscription
dimanche 20 janvier 2008
Statut
Membre
Dernière intervention
18 juin 2011
5
11 juin 2009 à 12:58
11 juin 2009 à 12:58
Ok c'est déjà plus claire. Merci.
Ça pourrais par exemple permettre de faire fonctionner un objet passé en paramètre suivant une interface. C'est ça ?
Et ainsi test si l'objet utilise bien toutes mes méthode ?
Ça pourrais par exemple permettre de faire fonctionner un objet passé en paramètre suivant une interface. C'est ça ?
Et ainsi test si l'objet utilise bien toutes mes méthode ?
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
11 juin 2009 à 13:28
11 juin 2009 à 13:28
salut,
Ça pourrais par exemple permettre de faire fonctionner un objet passé en paramètre suivant une interface. C'est ça ?
qu'est-ce que tu veux dire ?
la méthode "test" de ta classe "ma_classe" n'admet comme paramètre qu'un objet du type "autre_class".
ça te permet d'être sûr de la variable que tu reçois à l'appelle de la méthode.
part exemple si je crée une classe qui traite des exceptions pour les afficher :
si tu appelles la méthode de la première classe en lui passant autre chose qu'une exception, tu auras une erreur car la variable en paramètre n'aura pas de méthode "getMessage()".
avec la deuxième classe, tu auras aussi une erreur car tu donnes un paramètre incorrect mais l'erreur sera levée à l'extérieur de ta classe et tu es sûr que ta fonction ne sera pas exécutée, même partiellement.
Ça pourrais par exemple permettre de faire fonctionner un objet passé en paramètre suivant une interface. C'est ça ?
qu'est-ce que tu veux dire ?
la méthode "test" de ta classe "ma_classe" n'admet comme paramètre qu'un objet du type "autre_class".
ça te permet d'être sûr de la variable que tu reçois à l'appelle de la méthode.
part exemple si je crée une classe qui traite des exceptions pour les afficher :
<?php class classe_qui_affiche_l_erreur { public function affiche($e) { echo $e->getMessage(); // l'erreur sera levée ici } } // si tu fais : $obj = new classe_qui_affiche_l_erreur(); $param = array(); $obj->affiche($param); ?>
si tu appelles la méthode de la première classe en lui passant autre chose qu'une exception, tu auras une erreur car la variable en paramètre n'aura pas de méthode "getMessage()".
<code><?php class classe_qui_affiche_l_erreur_avec_type { public function affiche(Exception $e) { echo $e->getMessage(); } } // si tu fais : $obj = new classe_qui_affiche_l_erreur_avec_type(); $param = array(); $obj->affiche($param); // l'erreur sera levée ici ?></code>
avec la deuxième classe, tu auras aussi une erreur car tu donnes un paramètre incorrect mais l'erreur sera levée à l'extérieur de ta classe et tu es sûr que ta fonction ne sera pas exécutée, même partiellement.
nickleus
Messages postés
374
Date d'inscription
dimanche 20 janvier 2008
Statut
Membre
Dernière intervention
18 juin 2011
5
11 juin 2009 à 13:50
11 juin 2009 à 13:50
Ça pourrais par exemple permettre de faire fonctionner un objet passé en paramètre suivant une interface. C'est ça ?
qu'est-ce que tu veux dire ?
Voila un petit code que j'ai fait en croyant que c'était puisqu'il fonctionne car un exemple va meiux représenté ce que je voulais dire :
Est ce que tu vois ce que je veux dire ?
qu'est-ce que tu veux dire ?
Voila un petit code que j'ai fait en croyant que c'était puisqu'il fonctionne car un exemple va meiux représenté ce que je voulais dire :
interface Core_Inter { public function bibi ( ); }
class Core_Test1 { public function testing ( Core_Inter $p ) { $p->bibi ( ); } }
class Core_Test2 implements Core_Inter { public function bibi ( ) { echo 'bibi'; } }
$class = new Core_Test2; $class2 = new Core_Test1; $class2->testing ( $class );
Est ce que tu vois ce que je veux dire ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
11 juin 2009 à 14:27
11 juin 2009 à 14:27
ah !
et ça fonctionne ?
je pense qu'il faut plutôt hérité d'une de la classe "Core_Inter" que d'implémenter l'interface.
il teste le type et ta "Core_Test2" doit toujours être du type "objet standard" et pas du type "Core_Inter".
et ça fonctionne ?
je pense qu'il faut plutôt hérité d'une de la classe "Core_Inter" que d'implémenter l'interface.
il teste le type et ta "Core_Test2" doit toujours être du type "objet standard" et pas du type "Core_Inter".
nickleus
Messages postés
374
Date d'inscription
dimanche 20 janvier 2008
Statut
Membre
Dernière intervention
18 juin 2011
5
11 juin 2009 à 14:31
11 juin 2009 à 14:31
Oui en faite je pense que c'est un coup de bol si ça fonctionne.
Quoi que ... en lisant un tuto sur le design pattern observateurs ( car je suis entrain d'essayer de comprend), il font appel appel à l'interface.
Voila le lien :
http://julien-pauli.developpez.com/tutoriels/php/observer-spl/
tu vois ?
Quoi que ... en lisant un tuto sur le design pattern observateurs ( car je suis entrain d'essayer de comprend), il font appel appel à l'interface.
Voila le lien :
http://julien-pauli.developpez.com/tutoriels/php/observer-spl/
tu vois ?
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
11 juin 2009 à 14:42
11 juin 2009 à 14:42
non tu as raison ça fonctionne avec une interface !