[RESOLU] Retrouver un objet selon son type

Retrouver un objet selon son type [RESOLU] - PHP - Programmation

Marsh Posté le 10-01-2007 à 18:59:35    

Bonsoir

  

Est t'il possible de retrouver un objet stocké dans un tableau selon son type ?  En java la fonction est IndexOf(Objet) , mais je n'ai pas trouvé d'équivalent en php

 

Voici le bout de code qui pose problème :

 


Code :
  1. $array[] = new Voiture();
  2. $array[] = new Porte();
  3. $array[] = new Photo();
  4. function removeObject(Object o){
  5. //trouver l'objet de type
  6. //l'effacer du tableau
  7. $this->array->remove(....) ;
  8. }

Message cité 1 fois
Message édité par supermofo le 10-01-2007 à 21:07:38
Reply

Marsh Posté le 10-01-2007 à 18:59:35   

Reply

Marsh Posté le 10-01-2007 à 19:28:13    

supermofo a écrit :


Est t'il possible de retrouver un objet stocké dans un tableau selon son type ?  En java la fonction est IndexOf(Objet) , mais je n'ai pas trouvé d'équivalent en php


ah, je ne suis pas sûr que IndexOf se base sur le type en java....
 
sinon, tu peux toujours te faire ta fonction qui boucle avec un if ( $obj instanceof leType)
(ou quelque chose qui y ressemble)
 
(instanceof, c'est surement du PHP5)

Reply

Marsh Posté le 10-01-2007 à 19:42:29    

Si c'est un objet que tu veux enlever, faut effectivement itérer dans le tableau pour rechercher le même objet :

Code :
  1. <?php
  2. class Voiture {}
  3. class Porte{}
  4. class Photo{}
  5. $v = new Voiture();
  6. $p = new Porte();
  7. $p2 = new Photo();
  8. $array = array($v, $p, $p2);
  9. function removeTehShit(&$array, $object) {
  10.     foreach($array as $key => &$pouet) {
  11.         if($object === $pouet) {
  12.             unset($array[$key]);
  13.         }
  14.     }
  15. }
  16. var_dump($array);
  17. removeTehShit($array, $p);
  18. var_dump($array);


 
L'opérateur === compare donc si c'est la même instance (PHP5 uniquement, attention)

Reply

Marsh Posté le 10-01-2007 à 19:58:49    

FlorentG a écrit :


L'opérateur === compare donc si c'est la même instance (PHP5 uniquement, attention)


$a === $b Identique  TRUE si $a est égal à $b et qu'ils sont de même type (introduit en PHP 4).
http://fr.php.net/manual/fr/langua [...] arison.php
 
 
Mais il ne veut pas que ça soit que sur le type de l'instance ?


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 10-01-2007 à 20:02:46    

Php 5 gère toujours mal les références ?

 

Ouais type et égalité devrait me convenir, jve implémenter ca ..

Message cité 1 fois
Message édité par supermofo le 10-01-2007 à 20:07:08
Reply

Marsh Posté le 10-01-2007 à 20:05:22    

zapan666 a écrit :

Mais il ne veut pas que ça soit que sur le type de l'instance ?


Je sais pas, d'après ce que j'ai compris, c'est l'objet qu'il veut enlever, d'où le ===. Maintenant si c'est un objet du type, c'est effectivement un truc avec instanceof qu'il faut utiliser
 

supermofo a écrit :

Php 5 gère toujours mal les références ?


Non, il les gère mieux : les objets sont passés par référence par défaut (donc pas les types de bases ou les array)

Reply

Marsh Posté le 10-01-2007 à 20:12:55    

Bon ca à l'air de marcher merci


Message édité par supermofo le 10-01-2007 à 21:07:20
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed