Maison >développement back-end >Problème PHP >Quels sont les types de nombres convertis par php ?

Quels sont les types de nombres convertis par php ?

coldplay.xixi
coldplay.xixioriginal
2020-07-10 10:00:253364parcourir

La conversion PHP des types numériques comprend : 1. Conversion de type automatique, les chaînes sont converties en nombres, les entiers sont convertis en nombres à virgule flottante, les nombres à virgule flottante sont convertis en entiers avec le point décimal supprimé et les valeurs nulles ​​sont convertis en chaînes ; 2. Conversion de type forte, [intval()] est converti en type entier, [floatval()] est converti en nombre à virgule flottante.

Quels sont les types de nombres convertis par php ?

PHP convertit les types numériques :

PHP est un langage faiblement typé, contrairement à Java, C++ et d'autres langages. La différence entre les langages fortement typés est que les langages faiblement typés convertissent automatiquement les types de données, tandis que les langages fortement typés doivent déclarer les types manuellement.

1) Conversion de type automatique , cinq types de données, quatre types de scalaires et null peuvent être automatiquement convertis via des opérations. Les valeurs booléennes participent aux opérations

true ---> 1 false ---> 0

  • Opérations sur les chaînes et les nombres, les chaînes sont d'abord converties en nombres avant l'opération.

  • Convertissez la chaîne en nombre, en commençant par le début et en terminant par le premier caractère qui n'est pas un nombre (le contenu non correspondant est effacé).

  • Les entiers sont convertis en nombres à virgule flottante et la précision ne change pas.

  • Convertissez un nombre à virgule flottante en entier, supprimez le point décimal et conservez la partie entière.

  • Si le nombre à virgule flottante est en dehors de la plage entière, la réponse n'est pas définie.

  • la valeur nulle est convertie en une chaîne, qui est une chaîne vide.

  • //bool to int
    var_dump(true + 1);//2 true->1
    var_dump(false + 1);//1 false->0
    var_dump(null + 1);// 1 null-> 0
    echo &#39;<hr/>&#39;;
    // bool to float
    var_dump(true + 1.0);// float 2
    var_dump(false + 1.0);// float 1 var_dump(null + 1.0);// float 1
    echo &#39;<hr/>&#39;;
    //string to int
    var_dump(&#39;123&#39; + 1);//124 &#39;123&#39;->123
    var_dump(&#39;abc123&#39; + 1);//1 &#39;abc123&#39;->0
    var_dump(&#39;123abcdefggggggggggg;8000&#39; + 1);//124
    var_dump(&#39;a123&#39; + 1);//1
    var_dump(&#39;1a123&#39; + 1);//2
    //php7.0版本所有进制都不转
    var_dump(&#39;077abc&#39;+1);// 78 077->77 八进制不转换
    var_dump(&#39;0b11abc&#39;+1);//1 //0b 不转换
    var_dump(&#39;0xffhsahahhahah&#39;+1);//1 0x不转换
    //php 5.6以下都会转换为 0xff->255
    echo &#39;<hr/>&#39;;
    //string to float
    var_dump(&#39;1.234abcdef&#39;+ 1.0);//2.234
    var_dump(&#39;1.234E3&#39;+1.0);//1235
    var_dump(&#39;1e5&#39;+1.0);//2 100001
    var_dump(&#39;1E-5&#39;+1.0);//1.00001

2) Conversion de type forte

Utilisez des crochets plus le type cible pour convertir

(int)(integer)
 (bool)(boolean)
 (float)(real)
  (string)
  (array)
  (object)

Utilisez la fonction de conversion de type

Fonction pour convertir définitivement le type (souligné)settype()

Le premier paramètre est la variable dont vous souhaitez modifier le type

Le deuxième paramètre est le nom du type que vous souhaitez modifier

Convertir en entierintval()
Convertir en nombre à virgule flottantefloatval()
Convertir en chaînestrval()

<?php
  $a = 1;
  var_dump($a);
  var_dump((int)$a);
  var_dump((integer)$a);
  var_dump((bool)$a);
  var_dump((float)$a);
  var_dump((real)$a);
  var_dump((string)$a);
 var_dump((array)$a);
 var_dump((object)$a);
 var_dump($a);
 var_dump($a);
 var_dump($a);
 var_dump($a);
 var_dump($a);
 echo &#39;<hr/>&#39;;
 $b = 100;
 var_dump($b);
 //下面函数是永久有效的类型转换
 settype($b,&#39;string&#39;);
 var_dump($b);
 var_dump($b);
 var_dump($b);
 var_dump($b);
 var_dump($b);
 var_dump($b);
 echo &#39;<hr/>&#39;;
//下⾯的函数也是当次有效 和最开始的强制类型转换一样 只不过语法不同而已
 $m = 200;
 var_dump(intval($m));
 var_dump(floatval($m));
var_dump(strval($m));
 var_dump($m);
 var_dump($m);
 var_dump($m);

Recommandations d'apprentissage associées :

Programmation PHP de l'entrée à la maîtrise

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

Articles Liés

Voir plus