php 判断数据类型 自动/强制 类型转换

素颜马尾好姑娘i 2022-05-10 15:48 398阅读 0赞

在这里插入图片描述

使用is_* 系列函数。 is_types这一系列的函数,来进行判断某个东西是不是某个类型。如果是这个类型返回真,不是这个类型返回假。

is_int 是否为整型
is_bool 是否为布尔
is_float 是否是浮点
is_string 是否是字符串
is_array 是否是数组
is_object 是否是对象
is_null 是否为空
is_resource 是否为资源
is_scalar 是否为标量
is_numeric 是否为数值类型
is_callable 是否为函数

is_* 系列函数有个特点,就是如果是这个类型就返回的是真。不是这个数据类型就返回的是假

  1. $fo = false;
  2. if(is_bool($fo)){
  3. echo '执行真区间';
  4. }else{
  5. echo '执行假区间';
  6. }
  7. //检查未声明的变量$p是否为空,为空就执行真区间
  8. if(is_null($p)){
  9. echo '执行真区间';
  10. }else{
  11. echo '执行假区间';
  12. }
  13. echo "<br/>";
  14. //字符串类型的数值,看看执行的是真还是假
  15. $str = '18.8';
  16. if(is_numeric($str)){
  17. echo '执行真区间';
  18. }else{
  19. echo '执行假区间';
  20. }
  21. echo "<br/>";
  22. //把sca的值换成整型、浮点、布尔和字符串试试
  23. $sca = true;
  24. //如果为标量,执行真区间
  25. if(is_scalar($sca)){
  26. echo '执行真区间';
  27. }else{
  28. echo '执行假区间';
  29. }
  30. echo "<br/>";
  31. //换成echo,is_int试试,为什么echo执行假区间呢?
  32. if(is_callable('var_dump')){
  33. echo '执行真区间';
  34. }else{
  35. echo '执行假区间';
  36. }
  37. ?>

在这里插入图片描述

类型转换:

  1. <?php
  2. //布尔变整型参与运算
  3. $num = true;
  4. $result = $num + 10;
  5. //$result 结果为整型的11,因为$fo 被强制转换为 1 来进行运算了
  6. //如果$fo的值为0
  7. var_dump($result);
  8. //空字符串、空数组、null 都为false
  9. //字符串类型
  10. $str = '249字符串';
  11. $result = $str + 1;
  12. //结果为250。因为将$str变为了整型的249来进行运算,不过必须是第一位,放在其他位置上就没有用了。
  13. var_dump($result);
  14. //强调下,虽然这么做,目前执行出来的结果没有什么问题,但是如果在项目中很有可能给后期留下很大隐患,
  15. 尽量用同类型的来进行各种运算比较好!!!
  16. ?>

在这里插入图片描述

强制类型转换有三种方式:

1、 intval()、floatval()、strval()

  1. <?php
  2. $float = 1.23;
  3. $result = intval($float);
  4. //看看结果是不是变了?
  5. var_dump($result);
  6. //整型的5
  7. $yabozi = 5;
  8. $re = floatval($yabozi);
  9. var_dump($re);
  10. //定义整型的变量
  11. $yabozi = 23;
  12. $bian = strval($yabozi);
  13. //强制变成字符串试试
  14. var_dump($bian);
  15. ?>

2、变量前加上()里面写上类型,将它转换后赋值给其他变量

  1. <?php
  2. //定义一个变量,我们来变化一下试试
  3. $transfer = 12.8;
  4. //把浮点变为整型
  5. $jieguo = (int)$transfer;
  6. var_dump($jieguo);
  7. //把浮点变为布尔
  8. $jieguo = (bool) $transfer;
  9. var_dump($jieguo);
  10. //把布尔变整型
  11. $bool = true;
  12. $jieguo = (int)$bool;
  13. var_dump($jieguo);
  14. //把浮点变数组
  15. $fo = 250;
  16. $jieguo = (array)$fo;
  17. var_dump($jieguo);
  18. //其他的操作方式,按照文字总结的规律你来试试
  19. ?>

3、settype(变量,类型) 直接改变量本身

  1. <?php
  2. //定义浮点变为整型
  3. $fo = 250.18;
  4. //settype第二个参数是int,你实验的时候要记得第二个参数要为字符串类型
  5. settype($fo,'int');
  6. //输出看看结果
  7. var_dump($fo);
  8. ?>

发表评论

表情:
评论列表 (有 0 条评论,398人围观)

还没有评论,来说两句吧...

相关阅读