Question sur les classe PHP
nickleus
Messages postés
374
Date d'inscription
Statut
Membre
Dernière intervention
-
Dalida Messages postés 6728 Date d'inscription Statut Contributeur Dernière intervention -
Dalida Messages postés 6728 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Il arrive de temps en temps que je vois ceci dans de code de class :
class ma_class
{
funtion test (autre_class $request )
{
// code
}
}
Est ce que quelqu'un serait m'expliquer à quoi cela pourrait servir ?
merci beaucoup d'avance.
Il arrive de temps en temps que je vois ceci dans de code de class :
class ma_class
{
funtion test (autre_class $request )
{
// code
}
}
Est ce que quelqu'un serait m'expliquer à quoi cela pourrait servir ?
merci beaucoup d'avance.
A voir également:
- Question sur les classe PHP
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Comment classer par ordre alphabétique sur excel - Guide
- Classer les applications par ordre alphabétique iphone - Guide
- Bluetooth mercedes classe a - Forum Autoradio
7 réponses
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,...
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 ?
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.
Ç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
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".
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 ?