SetType () est une fonction intégrée en PHP qui modifie le type de variable. Il modifie directement le type de la variable et renvoie une valeur booléenne pour indiquer si la conversion est réussie. Les usages courants sont les suivants:
<span><span><span class="hljs-title function_ invoke__">settype</span></span><span>(</span><span><span class="hljs-variable">$var</span></span><span>, </span><span><span class="hljs-string">"int"</span></span><span>);
</span></span>Dans l'exemple ci-dessus, SetType () convertit le type de la variable $ var en un entier.
array_map () est une autre fonction PHP couramment utilisée qui applique une fonction de rappel à chaque élément d'un tableau et renvoie le nouveau tableau traité. L'utilisation de base est la suivante:
<span><span><span class="hljs-variable">$new_array</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(</span><span><span class="hljs-string">'callback_function'</span></span><span>, </span><span><span class="hljs-variable">$array</span></span><span>);
</span></span>Ici, callback_function est une fonction de rappel appliquée à chaque élément du tableau.
Lorsque nous devons taper convertir chaque élément dans le tableau, à l'aide de setType () et Array_Map () peut réaliser un effet très concis et efficace. La fonction setType () ne prend pas directement en charge les éléments de tableau de traitement, mais nous pouvons utiliser array_map () pour implémenter la conversion de type par lots des éléments du tableau.
Par exemple, supposons que nous ayons un tableau de nombres de type de chaîne et que nous voulons les convertir en types entiers, nous pouvons utiliser le code suivant:
<span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-string">"1"</span></span><span>, </span><span><span class="hljs-string">"2"</span></span><span>, </span><span><span class="hljs-string">"3"</span></span><span>, </span><span><span class="hljs-string">"4"</span></span><span>, </span><span><span class="hljs-string">"5"</span></span><span>];
</span><span><span class="hljs-comment">// utiliserarray_map()Combinésettype()Effectuer la conversion de type lot</span></span><span>
</span><span><span class="hljs-variable">$convertedArray</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(function(</span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-title function_ invoke__">settype</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>, </span><span><span class="hljs-string">"int"</span></span><span>);
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$value</span></span><span>;
}, </span><span><span class="hljs-variable">$array</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$convertedArray</span></span><span>);
</span></span>Dans cet exemple, array_map () iratera chaque élément du tableau et appliquera une fonction anonyme. À l'intérieur de la fonction anonyme, nous utilisons SetType () pour convertir chaque élément en un type entier, et enfin renvoyer la valeur convertie. De cette façon, nous obtenons un éventail d'entiers.
Lors du traitement des données à partir de sources de données externes telles que des bases de données ou des API, il peut y avoir différents types d'incohérences dans les données. Par exemple, les nombres peuvent être stockés en tant que chaînes, ou certains champs ont des types qui ne correspondent pas aux attentes. Utilisez array_map () combiné avec setType () pour nettoyer et convertir rapidement les données.
<span><span><span class="hljs-variable">$data</span></span><span> = [</span><span><span class="hljs-string">"12.5"</span></span><span>, </span><span><span class="hljs-string">"true"</span></span><span>, </span><span><span class="hljs-string">"100"</span></span><span>, </span><span><span class="hljs-string">"false"</span></span><span>, </span><span><span class="hljs-string">"50.6"</span></span><span>];
</span><span><span class="hljs-comment">// Convertir tous les éléments en types numériques flottants</span></span><span>
</span><span><span class="hljs-variable">$cleanedData</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(function(</span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-title function_ invoke__">settype</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>, </span><span><span class="hljs-string">"float"</span></span><span>);
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$value</span></span><span>;
}, </span><span><span class="hljs-variable">$data</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$cleanedData</span></span><span>);
</span></span>Cet extrait de code convertit chaque chaîne dans le tableau en valeur flottante. De cette façon, quel que soit le type de données d'entrée, un format unifié peut être garanti et le traitement ultérieur peut être facilité.
Dans une application Web, la saisie de l'utilisateur peut contenir différents types de données. Par exemple, un champ de formulaire peut être un entier, mais l'utilisateur soumet une chaîne. À ce stade, nous pouvons utiliser setType () et array_map () pour la conversion de type lots de l'entrée de formulaire.
<span><span><span class="hljs-variable">$userInput</span></span><span> = [</span><span><span class="hljs-string">"45"</span></span><span>, </span><span><span class="hljs-string">"67"</span></span><span>, </span><span><span class="hljs-string">"89"</span></span><span>, </span><span><span class="hljs-string">"102"</span></span><span>];
</span><span><span class="hljs-comment">// Convertir toutes les entrées utilisateur en entiers</span></span><span>
</span><span><span class="hljs-variable">$processedInput</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(function(</span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-title function_ invoke__">settype</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>, </span><span><span class="hljs-string">"int"</span></span><span>);
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$value</span></span><span>;
}, </span><span><span class="hljs-variable">$userInput</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$processedInput</span></span><span>);
</span></span>Cet exemple convertit toutes les chaînes d'entrée de l'utilisateur en entiers, en évitant l'erreur de décalage de type.
Supposons que nous ayons un éventail complexe de données avec plusieurs types et que nous voulons formater uniformément certaines données. Array_map () combiné avec setType () peut nous aider à accomplir cette tâche efficacement. Par exemple, si nous avons un tableau contenant des données de prix et que tous les prix sont stockés sous forme de types de chaînes, nous pouvons les convertir en types de valeur flottants et les arrondiser à deux décimales.
<span><span><span class="hljs-variable">$prices</span></span><span> = [</span><span><span class="hljs-string">"45.678"</span></span><span>, </span><span><span class="hljs-string">"102.897"</span></span><span>, </span><span><span class="hljs-string">"55.4"</span></span><span>, </span><span><span class="hljs-string">"99.99"</span></span><span>];
</span><span><span class="hljs-comment">// Convertir les données de prix en valeurs flottantes et les formater en deux décimales</span></span><span>
</span><span><span class="hljs-variable">$formattedPrices</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(function(</span><span><span class="hljs-variable">$price</span></span><span>) {
</span><span><span class="hljs-title function_ invoke__">settype</span></span><span>(</span><span><span class="hljs-variable">$price</span></span><span>, </span><span><span class="hljs-string">"float"</span></span><span>);
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">number_format</span></span><span>(</span><span><span class="hljs-variable">$price</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>);
}, </span><span><span class="hljs-variable">$prices</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$formattedPrices</span></span><span>);
</span></span>Ici, array_map () convertira et formara chaque prix pour s'assurer que les résultats de sortie répondent au format attendu.
SetType () et array_map () sont deux fonctions très puissantes dans PHP. Lorsqu'ils sont utilisés en combinaison, ils peuvent aider les développeurs à traiter et à convertir efficacement les données du réseau. Qu'il s'agisse de nettoyage des données, de traitement par lots de l'entrée des utilisateurs ou de la sortie de formatage, cette combinaison fournit une solution concise et facile à comprendre.
En utilisant de manière flexible ces deux fonctions, les développeurs peuvent considérablement améliorer la lisibilité et l'efficacité du code et simplifier une conversion de type fastidieuse et un traitement de tableau.
Étiquettes associées:
array_map