JeuWeb - Crée ton jeu par navigateur
[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


RE: Comparaison de deux objets en php? - Wells - 17-12-2008

Ouais mais sinon ça répond pas à ma question ^^


RE: [PHP] Comparaison de deux objets - Zamentur - 20-12-2008

C'est quand même étrange que le == ne fonctionne pas!

T'as une erreur quand tu essaies?
Nan parce que çà pourrait être du à la récursivité.
Citation :PHP Fatal error: Nesting level too deep - recursive dependency?

Ça peut arriver si les 2 objets comparés se contiennent l'un l'autre...

Sinon tu peux essayer avec
get_object_vars($o1)==get_object_vars($o2)

Enfin c'est un début de piste... Car çà ne regarde que les propriétés visibles et si ce sont des objets eux même, il faut refaire un test
Il faut aussi regarde si c'est la même classe avec get_class()

[HS]En ce qui concerne la collection, il peut être pas mal d'implémenter Iterator afin de pouvoir parcourir la collection avec foreach[/HS]


RE: [PHP] Comparaison de deux objets - Argorate - 20-12-2008

Le but c'est que je créé moi meme ma collection, donc je ne veux pas utilisé de chose deja créé...

La comparraison == n'a pas marché, mais ce n'est pas du a une erreur de refference, je me demande plutot si c'est pas un pb de version de php, mais j'en suis pas sur.

Sinon j'avais deja regarder les fonction que tu cites mais c'est insuffisant pour les raisons que tu énonces, cela ne vois que ce qui est public...


RE: [PHP] Comparaison de deux objets - Zamentur - 21-12-2008

(20-12-2008, 08:07 PM)Argorate a écrit : Le but c'est que je créé moi meme ma collection, donc je ne veux pas utilisé de chose deja créé...
Nan çà j'ai compris j'ai juste parlé d'iterator car il permet de parcourir un objet. Et donc si l'objet est une collection la collection.
Iterator c'est un trucs de PHP:
http://fr.php.net/manual/fr/language.oop5.iterations.php

Je suppose que tu ne recodes pas une boucle for, ou encore la fonction puissance! Iterator est dans le même cas...

Concernant le problème des variables publics, tu peux créé une classe abstraite dont tous tes objets hériteraient:
Code PHP :
<?php 
abstract class comparable {
static public function
is_equal($o1,$o2) {
if (
get_class($o1)!==get_class($o2)) return false;
elseif (
$o1->get_vars()!==$o2->get_vars()) return false;
else return
true;
}
public function
get_vars() {
return
get_object_vars($this);
}
}


Enfin c'est sur que c'est moins rapide que == ... Mais je vois pas non plus 30 000 manières!