[PHP] Comparaison de deux objets - 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] Comparaison de deux objets (/showthread.php?tid=3435) Pages :
1
2
|
[PHP] Comparaison de deux objets - Argorate - 15-12-2008 Bonsoir, Je suis entrain de finir de créer ma class collection en PHP, le seul truc qu'il me manque c'est ma méthode "existe()", qui détermine si un objet est déjà présent dans la collection ou non. Je ne peux pas faire un if(UnObjet == AutreObjet) Donc je voulais savoir comment on peut s'y prendre? Merci. RE: Comparaison de deux objets en php? - Nambew - 15-12-2008 Si tu regardes dans l'API de Java, ça peut te donner une idée. Tu peux définir une méthode de comparaison. Citation :contains RE: Comparaison de deux objets en php? - Argorate - 15-12-2008 Oui alors là^^ Soit tu me l'as fait en français soit je ne comprend rien Et tu penses qu'il existe un équivalant en php, ou tu sais qu'il existe un équivalant en php? RE: Comparaison de deux objets en php? - Nambew - 15-12-2008 Tu dois coder toi même ta méthode equal. Voici un exemple en Actionscript, mais c'est la même chose en PHP. Code PHP :
Code PHP :
Code PHP :
RE: Comparaison de deux objets en php? - lemouix - 15-12-2008 Je n'ai pas tout compris, mais est ce que === ne résoudrait pas ton pb ? Il s'agit d'un test sur la nature des objets de droite et de gauche RE: Comparaison de deux objets en php? - Argorate - 16-12-2008 il me faut comparé deux objets, voir si tous les attribus sont identique & qu'il son de la meme classe... Sinon, Nambew, j'aurais aimé trouver un moyen avec un simple if, et pas avoir a créé une seconde classes comme dans ton exemples. RE: Comparaison de deux objets en php? - Zamentur - 16-12-2008 En php5 php manual a écrit :Lors de l'utilisation de l'opérateur de comparaison ==, les objets sont comparées de manière simple, à savoir : deux objets sont égaux s'ils ont les mêmes attributs et valeurs, et qu'ils sont des instances de la même classehttp://fr.php.net/manual/fr/language.oop5.object-comparison.php et c'est === pour savoir si c'est le même objet (dans le sens même référence) Et je crois que çà marche aussi en php4 pour le premier cas... Ou alors j'ai peut etre rien compris? RE: Comparaison de deux objets en php? - Holy - 16-12-2008 Argo, tu n'en dis pas assez ^^ On ne connait pas tous ta classe, ni la manière dont est structurée ta collection ^^ La meilleure solution, à mon avis, c'est de créer un champ "référence" automatiquement, qui compilerait divers éléments caractéristiques de ton objet dans une chaine de caractère, un peu comme les opérateurs de bits. Genre: Nom: Masse d'arme Dégât: 5 Qualité: 10 Référence: masse:5:10 Comme ça si tu as un second objet: Nom: Masse d'arme Dégât: 10 Qualité: 5 Référence: masse:10:5 Suffit après de faire une comparaison après: Code PHP :
C'est qu'une idée, à toi d'adapter, je connais pas tes champs discriminants ^^' RE: Comparaison de deux objets en php? - Wells - 16-12-2008 Tient un Argorate faisant de l'objet ? la fin du monde serait elle plus proche que prévue ^^ Sinon pour en revenir au sujet, je ne vois pas trop l'intérêt de faire une comparaison d'objet point à point. Logiquement si tu veux comparer deux armes, tu test leur ID. Ça suffit largement. Quel est la finalité de cette comparaison? RE: Comparaison de deux objets en php? - Argorate - 16-12-2008 Wells : Je penssais que tu avais compris Si je parle d'objet ça implique qu'il ne s'agit pas de mon jeu Zamentur : un simple == ne marche pas, du moins là où j'ai tester (c'était avec wamp, mais il faudra que je verifie la version de php). holy: le principe d'une collection est le meme de partout, moi se que je fais c'est un simple tableau contenant des objets. Pour ta solution, ce n'est pas applicable comme tu l'indiques. C'est une simple recherche d'élément dans un tableau, le probleme ici étant que le tableau contient des objets: Code PHP :
|