Position actuelle: Accueil> Derniers articles> SetType () Performance dans la conversion booléenne

SetType () Performance dans la conversion booléenne

gitbox 2025-05-27

Dans PHP, la fonction setType () est utilisée pour convertir les variables en types de données spécifiés. Il modifie non seulement le type de la variable, mais modifie également directement la variable elle-même. Cet article se concentrera sur les performances spécifiques de SetType () lors de la conversion des variables en valeurs et des choses à noter.


1. Introduction à la fonction setType ()

L'utilisation de base de setType () est la suivante:

 settype(mixed &$var, string $type): bool
  • $ var est une variable du type qui doit être converti, et la fonction modifiera directement cette variable.

  • $ type est le type cible, tel que "bool" , "int" , "string" , etc.

  • La valeur de retour est une valeur booléenne indiquant si la conversion est réussie.


2. Performance lorsqu'elle est convertie en booléen

Lorsque SetType () convertit une variable en valeur booléenne, les règles de conversion sont cohérentes avec les règles de conversion booléennes intégrées de PHP:

  • La valeur "false" est convertie en fausse , notamment:

    • Valeur booléenne fausse

    • Valeur entière 0

    • Valeur du point flottante 0.0

    • String vide "" et string "0"

    • Array vide []

    • NUL

  • Toutes les autres valeurs sont converties en vrai

Exemple de code:

 $values = [0, 1, -1, "", "0", "hello", [], [1], null, false, true];

foreach ($values as $val) {
    settype($val, "bool");
    var_dump($val);
}

Résultat de sortie:

 bool(false)
bool(true)
bool(true)
bool(false)
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(false)
bool(true)

3. Précautions spécifiques

3.1 La variable elle-même est modifiée

SetType () modifiera directement la variable transmise. Notez que si vous souhaitez conserver la valeur d'origine, vous devez d'abord copier la variable.

 $original = "0";
$copy = $original;

settype($copy, "bool");

var_dump($original); // string(1) "0"
var_dump($copy);     // bool(false)

3.2 Performance lors de la saisie des types complexes

Si l'objet ou la ressource est passé, la conversion normale de PHP est également suivie lors de la conversion en booléen:

  • Les ressources et les objets sont généralement convertis en vrai à moins qu'ils ne soient des objets nuls ou vides.

  • Notez que setType () ne peut pas convertir directement l'objet en booléen, et le résultat peut ne pas être comme prévu.

3.3 Valeur de retour si la conversion a échoué

Bien que SetType () réussira dans la plupart des cas, certaines conversions de type non supportées rendront fausses .

 $obj = new stdClass();
$result = settype($obj, "bool"); // retour false,Impossible de convertir
var_dump($result);

4. Résumé

Caractéristiques illustrer
Modifiez directement le montant de la modification SetType () changera la variable elle-même passée
Convertir les valeurs booléennes selon les règles PHP Seules des valeurs spécifiques (telles que 0, une corde vide, null, etc.) deviendront fausses , et les autres sont vrais
Impossible de convertir des objets complexes Impossible de convertir l'objet directement en booléen, la conversion échouera et reviendra fausse
Revenir au statut de conversion réussi Renvoie une valeur booléenne pour indiquer si la conversion est réussie

La compréhension de ces comportements et limitations peut vous aider à contrôler plus précisément les types de variables et la logique du programme lors de la conversion des Booléens à l'aide de setType () .