Même si PHP n'est pas un langage fortement typé, il arrive que nous ayons besoin de convertir une donnée dans un autre type.
Par exemple, lors de la validation d'un formulaire Web, on voudra s'assurer que la valeur qui doit être enregistrée dans un champ de type integer soit effectivement un entier.
Pour effectuer les conversions de type, les fonctions PHP suivantes vous seront utiles :
$quantite = intval($_POST['quantite']);
Vous pourriez également avoir besoin de vérifier le type sans pour autant le modifier. Les principales fonctions de vérification de type sont :
Voici quelques exemples d'utilisation.
if (! is_bool($actif)) {
$actif = true;
}
if (!ctype_digit($_POST['annee'])) {
$message .= 'L\'année doit être un entier.<br \>';
}
$numero = 36;
$numeroPointDecimal = 12.34;
$numeroNegatif = -45;
$chaineNumero = '36';
$chaineNumeroPointDecimal = '12.34';
$chaineNumeroVirguleDecimale = '12,34';
$chaineNumeroNegatif = '-45';
echo 'is_numeric($numero)' . is_numeric($numero); // true
echo 'is_numeric($numeroPointDecimal)' . is_numeric($numeroPointDecimal); // true
echo 'is_numeric($numeroNegatif)' . is_numeric($numeroNegatif); // true
echo 'is_numeric($chaineNumero)' . is_numeric($chaineNumero); // true
echo 'is_numeric($chaineNumeroPointDecimal)' . is_numeric($chaineNumeroPointDecimal); // true
echo 'is_numeric($chaineNumeroVirguleDecimale)' . is_numeric($chaineNumeroVirguleDecimale); // false
echo 'is_numeric($chaineNumeroNegatif)' . is_numeric($chaineNumeroNegatif); // true
echo 'ctype_digit($numero)' . ctype_digit($numero); // false en PHP 7. Obsolète à partir de PHP 8.1.
echo 'ctype_digit($numeroPointDecimal)' . ctype_digit($numeroPointDecimal); //false en PHP 7. Obsolète à partir de PHP 8.1.
echo 'ctype_digit($numeroNegatif)' . ctype_digit($numeroNegatif); //false en PHP 7. Obsolète à partir de PHP 8.1.
echo 'ctype_digit($chaineNumero)' . ctype_digit($chaineNumero); // true
echo 'ctype_digit($chaineNumeroPointDecimal)' . ctype_digit($chaineNumeroPointDecimal); // false
echo 'ctype_digit($chaineNumeroVirguleDecimale)' . ctype_digit($chaineNumeroVirguleDecimale); // false
echo 'ctype_digit($chaineNumeroNegatif)' . ctype_digit($chaineNumeroNegatif); // false
La fonction gettype() permet d'effectuer un traitement particulier selon le type d'une variable.
if (gettype($nombre) != "integer")) {
...
}
Dans le cas où le type d'une variable est un objet, la fonction get_class() permet de retrouver la classe de cet objet.
if ("MaClasse" == get_class($variable)) {
...
}
« Fonctions de gestion des variables ». PHP. http://php.net/manual/fr/ref.var.php
« PHP isset() vs empty() vs is_null() ».Virendra's TechTalk. https://www.virendrachandak.com/techtalk/php-isset-vs-empty-vs-is_null/
▼Publicité