JeuWeb - Crée ton jeu par navigateur
PHP: instanceof - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : PHP: instanceof (/showthread.php?tid=7379)

Pages : 1 2 3


RE: PHP: instanceof - Xenos - 09-06-2015

Okay @niahoo Smile J'ai aussi mon avis sur les iframe & instanceof (c'est souvent diabolisé alors que c'est très efficace quand c'est bien utilisé; surtout quand les iframe sont parfois réinventées de travers à coup d'ajax), mais d'autres (au taff par exemple) ont tendance à diaboliser les iframe ou les instanceof, parfois sans même avoir lu leur specification ou juste par effet perroquet.

@srm J'ai pas parlé de East Wink
Un exemple, ce serait une classe CommissairePriseur à qui je veux donner un objet pour qu'il en évalue le prix. Mais je (l'appelant) n'y connais rien en art ou en argent, donc je ne veux pas choisir la méthode à appeler, surtout que je peux lui donner n'importe quel objet, ce qui ferait énormément de méthodes.


RE: PHP: instanceof - srm - 10-06-2015

Et bien il demandera à l'objet quel objet il est.


RE: PHP: instanceof - Xenos - 10-06-2015

Donc, t'implémenterai une méthode dédiée (East, je suppose ^^ ) plutôt qu'instanceof (qui n'est jamais qu'un moyen de demander à un objet s'il est telle ou telle chose)? Perso je trouve cela redondant (puisqu'il faudra implémenter la méthode dans vraiment chaque classe), mais bon.


RE: PHP: instanceof - Ter Rowan - 10-06-2015

bah si tu fais une classe gaia origine de tout qui a la méthode , ca n'en fait qu une à développer
maintenant instanceof permet de le faire directement je prendrais plutôt celle la sous réserve qu'on ne crée pas des classes / interfaces dans le seul but d'exploiter leur nom


RE: PHP: instanceof - Xenos - 03-07-2015

Gaia aura quand même le défaut de nécessiter un héritage moche qui limite les possibilités par la suite (car PHP n'autorise l'héritage que d'une seule classe parente). La composition rendrait le développement d'une classe inutilement lourd.

Justement, j'ai cherché un exemple un peu moins trivial, et j'en suis venu à celui-ci, sur lequel j'aimerai vos retours. L'idée est d'avoir des interfaces pour les nombres (Nombre d'un coté, et Entier/Fraction/Reel qui l'étendent), implémentées dans des classes. Puis on crée une autre classe, une calculatrice, qui accepte un Nombre en entrée (générique), et retourne un Nombre en sortie. Suivant les entrée, la classe instanciée pour la sortie diffère (et le calcul aussi du coup).


class SmartCalculatrice implements Additionneur {
public function addition(Nombre $a, Nombre $b) {
return
($a instanceof Fraction && $b instanceof Fraction)?
new Fraction (
$a->getNumerateur()*$b->getDenominateur
+ $b->getNumerateur()*$a->getDenominateur(),
$a->getDenominateur()*$b->getDenominateur()
):
new Reel($a->getValeur()+$b->getValeur());
}
}



RE: PHP: instanceof - Ter Rowan - 03-07-2015

moi ton code me va