Debutant php PHP 15 min de lecture

Logique et autres contextes

Contextes Logiques et Autres

Comparaison de Valeurs avec l'Opérateur Spaceship

L'opérateur spaceship de PHP (<=>) fournit un moyen concis de comparer deux valeurs et de déterminer leur ordre relatif. Le résultat est un entier représentant la comparaison : -1 si le côté gauche est inférieur au côté droit, 1 s'il est supérieur, et 0 s'ils sont égaux. Il est important de comprendre que la conversion automatique de type (ou "jeu de type") de PHP peut influencer cette comparaison. Par exemple, comparer la chaîne de caractères "22" avec l'entier 22 donne 0 car PHP convertit la chaîne de caractères en entier lors de la comparaison.

Cet opérateur est particulièrement utile lorsque vous devez trier des données, car certaines fonctions de tri exigent spécifiquement ce résultat -1, 0 ou 1.

Contextes Logiques et Conversion de Type

PHP convertit souvent des valeurs de différents types de données en valeurs booléennes (true ou false) lorsqu'une valeur booléenne est attendue. Cela se produit dans des contextes spécifiques, notamment :

  • Opérateurs Logiques : Lors de l'utilisation des opérateurs AND (&&) et OR (||).
  • L'Opérateur Ternaire : Utilisé pour des affectations conditionnelles concises.
  • Instructions Conditionnelles : Comme les instructions if et les instructions switch.

Nous allons explorer ces contextes logiques plus en détail plus tard. Au-delà des contextes logiques, le jonglage de types se produit également dans les arguments de fonction, ce que nous aborderons dans un chapitre ultérieur. Les opérations bit à bit, un autre contexte pour le jonglage de types, sont moins courantes dans le développement web et ne sont pas abordées dans ce tutoriel.

Conversion de type explicite

Parfois, vous devez vous assurer qu'une valeur est traitée comme un type de données spécifique. Ceci est réalisé par la conversion de type explicite, qui est une conversion délibérée et explicite, contrairement au jonglage de types automatique de PHP. Pour convertir une valeur, vous placez le type de données souhaité entre parenthèses avant la valeur ou la variable.

Par exemple, (float)21 force l'entier 21 à être traité comme un nombre à virgule flottante.

Voici quelques exemples de conversion de différents types de données scalaires :

<?php
$age = (int)20.5;
var_dump($age);

$price = (string)9.99;
var_dump($price);

$inventory = (bool)0;
var_dump($inventory);
?>

Dans le premier exemple, (int)20.5 tronque la partie décimale, ce qui donne l'entier 20. Le deuxième exemple convertit le nombre 9,99 en une chaîne de caractères, représentée par "9,99". Enfin, convertir 0 en booléen donne false.