Maison  >  Article  >  développement back-end  >  Comment forcer la conversion en chaîne en php

Comment forcer la conversion en chaîne en php

藏色散人
藏色散人original
2021-03-15 09:13:413884parcourir

Comment forcer la conversion en chaîne en PHP : Créez d'abord un exemple de fichier PHP ; puis définissez une variable ; et enfin forcez la conversion en chaîne via la méthode de chaîne en PHP.

Comment forcer la conversion en chaîne en php

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3

Type de conversion forcée PHP

Obtenir le type de données :

1 Si vous souhaitez vérifier la valeur et le type d'une expression, utilisez var_dump().
2. Si vous souhaitez simplement obtenir une expression de type facile à comprendre pour le débogage, utilisez gettype().
3. Pour afficher un certain type, n'utilisez pas gettype(), mais utilisez la fonction is_type().

Convertir une chaîne en valeur numérique

  1. Lorsqu'une chaîne est évaluée comme un nombre, les règles suivantes sont utilisées Déterminer le type et la valeur du résultat.
  2. Si elle contient l'un des caractères ".", "e" ou "E", la chaîne est évaluée comme un flottant. Sinon, il est traité comme un entier.
  3. La valeur est déterminée par la première partie de la chaîne. Si la chaîne commence par des données numériques légales, ce nombre est utilisé comme valeur, sinon sa valeur est 0 (zéro). Les données numériques légales commencent par un signe facultatif, suivi d'un ou plusieurs chiffres (y compris éventuellement une fraction décimale), suivis d'un exposant facultatif. L'exposant est un « e » ou un « E » suivi d'un ou plusieurs chiffres.

Remarque : Ne vous attendez pas à obtenir l'encodage d'un caractère lorsque vous le convertissez en entier (vous le faites probablement aussi en C). Si vous souhaitez effectuer une conversion entre les encodages de caractères et les caractères, utilisez les fonctions ord() et chr().

Le casting de type forcé

Le casting de type en PHP est très similaire à celui en C : dans la variable à convertir Précédé par le type de cible entre parenthèses.

Les conversions autorisées sont :

  • (int),(integer) - Convertir en entier
  • (bool),(boolean) - Convertir en Type booléen
  • (float),(double),(real) - Convertir en type à virgule flottante
  • (string) - Convertir en chaîne
  • (array) - Convertir en array
  • (object) - Convertir en objet

Notez que les espaces et les tabulations sont autorisés entre parenthèses

Vous pouvez également utiliser settype (mixed var, type de chaîne) est forcé à convertir.

1. Conversion forcée en valeur booléenne (bool)|(boolean)

Pour convertir explicitement une valeur en booléen, utilisez (bool ) ou (boolean) pour forcer la conversion. Mais dans de nombreux cas, la conversion n'est pas nécessaire car lorsqu'un opérateur, une fonction ou un contrôle de flux nécessite un paramètre booléen, la valeur est automatiquement convertie.
Lorsqu'elles sont converties en booléen, les valeurs suivantes sont considérées comme FAUX :
Valeur booléenne FAUX
Valeur entière 0 (zéro)
Valeur flottante 0,0 (zéro)
Chaîne vide et chaîne "0 "
Tableau sans variables membres
Objet sans cellules (uniquement pour PHP 4)
Type spécial NULL (y compris les variables qui n'ont pas été définies)
Toutes les autres valeurs sont considérées comme VRAI (y compris toutes ressources).

<?php
var_dump((bool) ""); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "foo"); // bool(true)
var_dump((bool) 2.3e5); // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)
?>

2. Convertir en entier (int)|(integer)

Pour convertir explicitement une valeur en entier, utilisez la conversion (int) ou (integer). Cependant, dans la plupart des cas, la conversion n'est pas nécessaire car lorsqu'un opérateur, une fonction ou un contrôle de flux nécessite un paramètre entier, la valeur est automatiquement convertie. Vous pouvez également utiliser la fonction intval() pour convertir une valeur en type entier.
a. Convertir à partir de bool
b. Convertir à partir d'un nombre à virgule flottante, arrondi, hors plage, le résultat est incertain
c Convertir à partir d'une chaîne, voir Convertir une chaîne en valeur numérique
d. à partir d'autres types, remplacez d'abord par une valeur booléenne, puis convertissez

Ne convertissez jamais une fraction inconnue en un entier, car cela peut parfois conduire à des résultats inattendus.

<?php
echo (int) ( (0.1+0.7) * 10 ); // 显示 7
?>
$str = "123.456abc7"; // (int)123
echo (int)$str;
$str = "abc123.456";   // (int)0
$str = true;           // (int)1
$str = false;          // (int)0

    3.强制转换为浮点型 (int)|(double)|(real)|doubleval()|floatval()|intval() 
精度: 0.12345678901234 // double,real都一样
数据的丢失参 字符串转换为数值
【推荐学习:《PHP视频教程》】    
    4.强制换为字符串 (string) |strval()
可以用 (string) 标记或者 strval() 函数将一个值转换为字符串。当某表达式需要字符串时,字符串的转换会在表达式范围内自动完成。例如当使用 echo() 或者 print() 函数时,或者将一个变量值与一个字符串进行比较的时候。

  • 布尔值 TRUE 将被转换为字符串 "1",而值 FALSE 将被表示为 ""(即空字符串)。这样就可以随意地在布尔值和字符串之间进行比较。
  • 整数或浮点数数值在转换成字符串时,字符串由表示这些数值的数字字符组成(浮点数还包含有指数部分)。
  • 数组将被转换成字符串 "Array",因此无法通过 echo() 或者 print() 函数来输出数组的内容。请参考下文以获取更多提示。
  • 对象将被转换成字符串 "Object"。如果因为调试需要,需要将对象的成员变量打印出来,请阅读下文。如果希望得到该对象所依附的类的名称,请使用函数 get_class()。自 PHP 5 起,如果合适可以用 __toString() 方法。
  • 资源类型总是以 "Resource id #1" 的格式被转换成字符串,其中 1 是 PHP 在运行时给资源指定的唯一标识。如果希望获取资源的类型,请使用函数 get_resource_type()。
  • NULL 将被转换成空字符串。

正如以上所示,将数组、对象或者资源打印出来,并不能提供任何关于这些值本身的有用的信息。请参阅函数 print_r() 和 var_dump(),对于调试来说,这些是更好的打印值的方法。 
可以将 PHP 的值转换为字符串以永久地储存它们。这种方法被称为序列化,可以用函数 serialize() 来完成该操作。如果在安装 PHP 时建立了 WDDX 支持,还可以将 PHP 的值序列化为 XML 结构。 
    4. 强制转换为数组 (array)

  • 对于任何的类型:整型、浮点、字符串、布尔和资源,如果将一个值转换为数组,将得到一个仅有一个元素的数组(其下标为 0),该元素即为此标量的值。
  • 如果将一个对象转换成一个数组,所得到的数组的元素为该对象的属性(成员变量),其键名为成员变量名。
  • 如果将一个 <span style="font-family: NSimsun">NULL</span> 值转换成数组,将得到一个空数组。

         5. 转换为对象 (object)
如果将一个对象转换成对象,它将不会有任何变化。如果其它任何类型的值被转换成对象,内置类 stdClass 的一个实例将被建立。如果该值为 NULL,则新的实例为空。数组转换成对象将使键名成为属性名并具有相对应的值。对于任何其它的值,名为 scalar 的成员变量将包含该值
    6. 转换为资源 (无法转换)
由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此无法将其它类型的值转换为资源。
■PHP 类型比较表
以下的表格显示了 PHP 类型和比较运算符在松散和严格比较时的作用。该补充材料还和类型戏法的相关章节内容有关。

  • 注意
  • HTML 表单并不传递整数、浮点数或者布尔值,它们只传递字符串。要想检测一个字符串是不是数字,可以使用 is_numeric() 函数。
  • 在没有定义变量 $x 的时候,诸如 if ($x) 的用法会导致一个 E_NOTICE 级别的错误。所以,可以考虑用 empty 

 

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