Validation de type entier d'une variable PHP
Publié le 19/01/2024 • Actualisé le 19/01/2024
Dans ce bout de code, nous voyons comment faire une validation de type entier d'une variable avec PHP. Dans snippet précédent, on a vu une astuce (assez moche) pour convertir une variable en entier. Ici on fait la validation en utilisant la fonction à usage multiples filter_var()
. Si la variable n'est pas un entier, alors il est retourné false
. Le cas spécifique pour true
est quelque chose à savoir puisque ça retourne true
même si c'est un booléen. Comme on peut le voir sans la sortie du snippet,true
est transformé en 1. C'est assez étrange puisque ce n'est pas le case pour false
<?php
declare(strict_types=1);
namespace App\Controller\Snippet;
/**
* J'utilise un trait PHP afin d'isoler chaque snippet dans un fichier.
* Ce code doit être apellé d'un contrôleur Symfony étendant AbstractController (depuis Symfony 4.2)
* ou Symfony\Bundle\FrameworkBundle\Controller\Controller (Symfony <= 4.1).
* Les services sont injectés dans le constructeur du contrôleur principal.
*/
trait Snippet287Trait
{
public function snippet287(): void
{
$tests = [
true,
false,
'0.0',
'foo',
['my' => 'array'],
555,
0,
1,
-1,
];
foreach ($tests as $test) {
$filteredVar = filter_var($test, FILTER_VALIDATE_INT);
if ($filteredVar !== false) {
echo \sprintf('%s is an integer, final var: %s'.PHP_EOL, var_export($test, true), var_export($filteredVar, true));
} else {
echo \sprintf('%s is NOT an integer'.PHP_EOL, var_export($test));
}
}
// That's it! 😁
}
}
Exécuter le snippet Plus sur Stackoverflow Lire la doc Snippet aléatoire