Actualités WEB et WordPress, thèmes, plugins. Ici, nous partageons des conseils et les meilleures solutions de sites Web.

Écrire des boucles en PHP : deux manières ; Même chose

22

Lorsque vous travaillez avec une collection en PHP, notamment des tableaux en PHP, vous voyez principalement les informations manipulées de deux manières :

  1. à travers des for boucles,
  2. à travers une variété de array fonctions fournies par PHP.

Pour ce que ça vaut, je pense que les array fonctions offrent une plus grande lisibilité, mais elles se sont avérées plus lentes (en particulier avec des données plus volumineuses – avec des données plus petites, cela va naturellement être négligeable).

Je travaille souvent avec des forboucles et des fonctions associées pour obtenir la même chose, mais j’ai pensé qu’il serait peut-être utile de regarder un exemple du post précédent et comment j’ai utilisé les arrayfonctions pour obtenir les mêmes choses qu’une for boucle.

En fin de compte, il s’agit d’un article de comparaison, mais je pense qu’il est bon de voir comment le même code peut être écrit de différentes manières.

Écrire des boucles en PHP

Dès le départ, je ne prétends pas ce qui est le mieux. Ceci est simplement pour montrer comment l’écriture de boucles en PHP peut être réalisée de plusieurs manières.

C’est à vous de décider comment vous voulez l’implémenter.

Le but de cet exemple est de montrer :

  • comment récupérer les tags d’un post donné,
  • lire leurs noms est un tableau délimité par des tubes,
  • renvoie les noms de balises séparés par le tube dans un format de chaîne.

Et voici les deux façons de le faire.

Utilisation d’une boucle standard

L’utilisation d’une boucle standard for peut ressembler à ceci :

<?php

// Setup the array to store the tag names.
$tagNames = [];

// Iterate through all of the tags.
$tags = get_the_tags();
for ($i = 0; $i < count($tags); $i++) {
  $currentTag = $tags[$i];

  // Only add names that have not been added.
  if (!in_array($currentTag->name, $tagNames)) {
      $tagNames[] = $currentTag->name;
  }
}

// Break the names of the the tags into a '|' delimited string.
$tagNameString = implode('|', $tagNames);

// Clean up the string so any trailing pipes are removed.
$tagNameString = rtrim($tagNameString, '|');

Remarquez que je :

  1. initialiser une chaîne,
  2. lire les balises
  3. les parcourir et les ajouter uniquement s’ils n’existent pas déjà,
  4. séparer le tableau à l’aide d’un tuyau,
  5. supprimer tous les tuyaux qui traînent

Ensuite, j’ai la chaîne que je peux retourner.

Utilisation des fonctions de tableau

Dans cet exemple, je fais la même chose mais le code est un peu plus compact :

<?php

// Seperate each indidivudal entry by a '|'
implode(
  '|',
  // Remove any duplicates in the array.
  array_filter(
    /* iterate through the list of tags and add the names to an 
     * array that's returned to filter.
     */
    array_map(function ($tag) {
      return $tag->name;
    }, get_the_tags())) );

Il est utile de lire le code de la fonction la plus interne à la plus externe. Avec ça, voici ce qui se passe :

  1. Je prends les balises, parcourant chacune d’elles à l’aide d’une fonction anonyme transmise à array_map,
  2. J’utilise ensuite le tableau renvoyé et le transmets array_filter afin que les doublons soient supprimés,
  3. Ensuite, je convertis le tableau en une chaîne délimitée par des tuyaux.

Tout comme ci-dessus, j’ai la chaîne que je peux retourner.

C’est ça?

Oui – et c’est tout. Je ne dis pas que la lisibilité de la deuxième fonction est meilleure mais je dirai qu’elle nécessite moins d’étapes.

N’oubliez pas non plus que des ensembles de données plus volumineux peuvent ne pas fonctionner aussi bien.

Quoi qu’il en soit, l’utilisation de fonctions de tableau intégrées est vraiment agréable car elle fournit un niveau de fonctionnalité intégrée native de PHP (alors que for les boucles sont plus courantes dans tous les langages) qui peut nous faire gagner du temps (comme le filtrage des données en double).

Des références ?

En fait, oui. Mis à part le manuel PHP, je pense que Carl Alexander a sans doute l’article le plus complet sur ce sujet.

Écrire des boucles en PHP : deux manières ; Même chose

Cela vaut la peine de le lire dans son intégralité, surtout si vous avez trouvé cet article intéressant.

Source d’enregistrement: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More