Maison >développement back-end >Problème PHP >Comment forcer une valeur à un type numérique en php

Comment forcer une valeur à un type numérique en php

青灯夜游
青灯夜游original
2023-01-30 16:50:133965parcourir

Méthode de conversion forcée : 1. Ajoutez le type cible "(int)" ou "(float)" entre parenthèses avant les données pour convertir la valeur en un type entier ou un type à virgule flottante, tel que "(int)$ str ", "(float)$str"; 2. Utilisez la fonction intval() pour convertir la valeur en un type entier, la syntaxe est "intval(value)"; 3. Utilisez la fonction floatval() pour convertir la valeur en un Type à virgule flottante, syntaxe "floatval(value)" ; 4. Utilisez la fonction settype().

Comment forcer une valeur à un type numérique en php

L'environnement d'exploitation de ce tutoriel : système windows7, version PHP8, ordinateur DELL G3

php propose deux types numériques :

  • integer (entier)

  • float (virgule flottante), également appelé double)

Discuter du forçage d'une valeur vers un type numérique, c'est discuter de la conversion d'une valeur en un type entier ou à virgule flottante. Parlons de la méthode de conversion.

Cas 1 : Contraindre la valeur à un type entier (3 méthodes)

Méthode 1 : Ajouter le type cible "(int)" ou "(integer)" entre parenthèses avant les données

  • (int), (integer) : Convertir en type entier ;

<?php
header("Content-type:text/html;charset=utf-8"); 
$str = &#39;123.456abc&#39;;
echo &#39;变量 $str 的类型为:&#39;.gettype($str).&#39;<br>&#39;;
$int1 = (int)$str;
echo &#39;变量 $int1 的类型为:&#39;.gettype($int1).&#39;<br>&#39;;
$int2 = (integer)$str;
echo &#39;变量 $int2 的类型为:&#39;.gettype($int2).&#39;<br>&#39;;
?>

Comment forcer une valeur à un type numérique en php

Méthode 2 : Utiliser la fonction intval()

La fonction intval() est utilisée pour obtenir la valeur entière d'une variable. La fonction

intval() renvoie la valeur entière de la variable var en utilisant la conversion de base spécifiée (la valeur par défaut est décimale). intval() ne peut pas être utilisé avec un objet, sinon une erreur E_NOTICE sera générée et 1 sera renvoyé.

Syntaxe :

int intval ( mixed $var [, int $base = 10 ] )

Description du paramètre :

  • $var : La valeur de la quantité à convertir en entier.

  • $base : la base utilisée pour la conversion.

Si base est 0, déterminez la base utilisée en détectant le format de var :

  • Si la chaîne inclut le préfixe "0x" (ou "0X"), utilisez hexadécimal (hex) Sinon,

  •  ;
  • si la chaîne commence par "0", utilisez octal ; sinon,

  • utilisera décimal.

Valeur de retour : la valeur entière de var est renvoyée en cas de succès et 0 est renvoyée en cas d'échec. Un tableau vide renvoie 0, un tableau non vide renvoie 1.

Exemple : Convertissez la valeur en type int

<?php 
header("Content-type:text/html;charset=utf-8");  
$str1="123d";   
$str2=intval($str1); 
echo "字符串型转为int型:";
var_dump($str1); 
var_dump($str2); 
?>

Comment forcer une valeur à un type numérique en php

Méthode 3 : Utilisez la fonction settype()

fonction settype() : utilisée pour définir le type de la variable.

Les types pouvant être définis sont :

  • "boolean" (ou "bool", à partir de PHP 4.2.0)

  • "integer" (ou "int", à partir de PHP 4.2.0) )

  • "float" (disponible uniquement après PHP 4.2.0, "double" utilisé dans les anciennes versions est désormais obsolète)

  • "string"

  • "array"

  • "object"

  • "null" (à partir de PHP 4.2.0)

Remarque : La fonction settype() changera le type de la variable elle-même.

Exemple : Convertir le type à virgule flottante en type int

<?php
header("Content-type:text/html;charset=utf-8");
$str="52.36";
echo &#39;原 $str:<br>&#39;;
var_dump($str); 

settype($str, &#39;integer&#39;);
echo &#39;<br>现 $str:<br>&#39;;
var_dump($str); 
?>

Comment forcer une valeur à un type numérique en php

Cas 1 : Forcer la valeur en type à virgule flottante (3 méthodes)

Catégorie Cas 1 : Forcer la valeur à taper Il y en a aussi trois méthodes courantes pour les types à virgule flottante.

Méthode 1 : Ajoutez le type de cible "(float)", "(double)" ou "(real)" entre parenthèses avant les données

  • (float), (double), (real ): Convertir en type à virgule flottante ;

<?php
header("Content-type:text/html;charset=utf-8"); 
$str = &#39;123.456abc&#39;;
var_dump($str);
$float1 = (float)$str;
var_dump($float1);
$float2 = (double)$str;
var_dump($float2);
$float3 = (real)$str;
var_dump($float3);
?>

Comment forcer une valeur à un type numérique en php

Méthode 2 : Utiliser la fonction floatval()

La fonction floatval() est une fonction qui convertit spécifiquement d'autres types en types à virgule flottante, elle peut obtenir des variables en valeur à virgule flottante. .

Remarque : floatval ne peut pas être utilisé pour des tableaux ou des objets.

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$var = &#39;122.34343runoob&#39;;
echo "原数据类型:";
var_dump($var);
$float= floatval($var);
echo "修改后的类型:";
var_dump($float);
?>

Comment forcer une valeur à un type numérique en php

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$var = TRUE;
echo "原数据类型:";
var_dump($var);
$float= floatval($var);
echo "修改后的类型:";
var_dump($float);
?>

5-Comment forcer une valeur à un type numérique en php

Méthode 3 : Utilisez la fonction settype()

La fonction settype() peut convertir la valeur dans le type de données spécifié (contrôlé par le deuxième paramètre).

Réglez simplement le deuxième paramètre de la fonction sur "float" pour convertir les données en un nombre à virgule flottante.

Remarque : Cette fonction modifiera la variable d'origine ; si le réglage est réussi, elle renverra VRAI, si elle échoue, elle renverra FAUX.

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$foo = "5bar"; // string
$bar = true;   // boolean
echo "原数据类型:";
var_dump($foo);
var_dump($bar);
settype($foo, "float");
settype($bar, "float");
echo "修改后的类型:";
var_dump($foo);
var_dump($bar);
?>

Comment forcer une valeur à un type numérique en php

Apprentissage recommandé : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn