PHP – modifier des objets dans un tableau
Cette opération est-elle moins triviale qu’elle n’y paraît ?
Sommaire
Parcours de tableaux
Le parcours de tableau en PHP et très simple. Il suffit d’écrire le code suivant :
- Pour un simple tableau :
foreach ( $tableau as $element) { print $element; }
- Pour un tableau associatif :
foreach ( $tableau as $cle as $element) { print $cle."=".$element; }
Modification de tableaux
Ces deux boucles sont valables pour les tableaux d’objets. Par contre, elles ne sont pas valables lorsque l’on souhaite modifier un ou plusieurs objets se trouvant dans le tableau.
Pourquoi ?
Le problème vient du fait que l’opérateur foreach
fait une copie des objets qu’il trouve dans le tableau. Ainsi les objets modifiés ne sont que des pales copies des objets originaux.
Solutions
Il est possible de créer un nouveau tableau et d’y stocker les copies des objets. Mais cette solution n’est pas très élégante et dans le cas où le tableau contient beaucoup d’objet et/ou des très gros objets, il n’est peut-être pas souhaitable de copier tous ces éléments pour obtenir de meilleures performances.
C’est pourquoi, il est préférable d’utiliser le code suivant pour modifier les objets dans un tableau :
for ( $i = 0, $max = count($tableau), $i < $max; $i++) { print $tableau[$i]; // modification des champs de l'objet $tableau[$i] }https://blog.lecacheur.com/2006/01/31/php-modifier-des-objets-dans-un-tableau/DéveloppementphpCette opération est-elle moins triviale qu'elle n'y paraît ? Parcours de tableaux Le parcours de tableau en PHP et très simple. Il suffit d'écrire le code suivant : Pour un simple tableau : Pour un tableau associatif : Modification de tableaux Ces deux boucles sont valables pour les tableaux d'objets. Par contre, elles ne sont pas valables lorsque l'on...SeBSébastien LECACHEUR23r0@laposte.netAdministratorLe weblogue de SeB
Laisser un commentaire