PHP的数据类型

时间:2022-10-19 16:50:27

一、数据类型的分类(三大类八小类)

1.标量数据类型

  • int    线性整数,可以有十进制,八进制,十六进制

 

<?php
   //十进制
   $v1=255;
   echo $v1;//255
   //八进制------以0开头(输出会自动转为10进制的整数)
   $v2=076;
   echo $v2;//62
   //十六进制-----以0x开头(输出会自动转为10进制的整数)
   $v3=0xFF;
   echo $v3;//255
?>

 

  • float  带有小数点的数,可以用普通方法定义,也可以使用科学计数法,记住小数之间不能随意比较大小

 

<?php
  //定义浮动类型
  $v1=3.33;
  echo $v1;//3.33
  //科学计数法
  $v2=1.22E+9;
  echo $v2;//1220000000
?>

 

<?php
 if(0.7-0.3==0.4){
     echo 'yes';
 }else{
     echo 'no';
 }
 //输出结果是no,说明不能随意的对两个小数点进行比较大小
?>

 

  • boolean 两个数ture或者false,成立或者不成立
  • string  字符串就是使用单引号或者双引号括起来的0个或者多个字符

    ①使用单引号定义的字符串

      能够被转义的字符有    \\(反斜杠)    \'(单引号)

      单引号定义的字符串的变量不能解析其值

<?php
 $num=10;
 //单引号定义的字符串
 $strA='Act\\ions spe\'ak louder than words$num';
 echo $strA;//Act\ions spe'ak louder than words$num
?>

    ②使用双引号定义的字符串

      能够被转义的字符有   \''(双引号)   \t (tab符)   \r (回车符)  \n(换行符)   \\ (反斜杠)   \$($符)

      双引号定义的字符串中的变量的值可以被解析

 

<?php
 $num=10;
 //双引号定义的字符串
 $strB="Act\\ions spe\"ak lou\$der than words$num";
 echo $strB;//Act\ions spe"ak lou$der than words10
?>

 

    ③heredoc定义的字符串是定义大段文本

PHP的数据类型

2.复合数据类型

  • array 数组,分为索引数组(下标是索引)和关联数组(下标是字符串)

PHP的数据类型

  • object   对象

3.特殊数据类型

  • null   只有一个值null
  • resource 资源数据类型是一个特殊的变量,程序员没有办法直接定义一个资源,必须使用PHP提供的获取资源的函数

PHP的数据类型

二、数据类型的转换

  • 自动转换

PHP的数据类型

  • 强制转换
  ①(integer)变量 ------将数据类型强制转为整型
  ②(float)变量------将数据类型强制转为浮点型
  ③(array)变量------将数据类型强制转为数组类型
  ④(object)变量------将数据类型强制转为对象类型
  ⑤(string)变量------将数据类型强制转为字符串类型
  ⑥(boolean)变量或者(bool)变量------将数据类型强制转为布尔类型
 
<?php
    $v1=10;
    $v2=0;
    $v3='';
    $v4='0';
    $v5=[];
    $v6=null;
    $v7=0.0;
    var_dump((boolean)$v1);//bool(true)
    var_dump((boolean)$v2);//bool(false)
    var_dump((boolean)$v3);//bool(false)
    var_dump((boolean)$v4);//bool(false)
    var_dump((boolean)$v5);//bool(false)
    var_dump((boolean)$v6);//bool(false)
    var_dump((boolean)$v7);//bool(false)
    // 0、0.0、字符空、字符0、空数组、null都是等效于布尔false的值
?>

三、数据类型的判断

  • is_数据类型(变量)----判断是否为哪种数据类型(8类)
  • is_scalar(变量)---------判断是否为标量(4类)
  • isset(变量)----------用于判断是否有设置值(判断变量是否为null)

 

<?php
    $v1=10;
    $v2=0;
    $v3='';
    $v4='0';
    $v5=[];
    $v6=null;
    $v7=0.0;
    $v8=false;
    var_dump(isset($v1));//bool(true)
    var_dump(isset($v2));//bool(true)
    var_dump(isset($v3));//bool(true)
    var_dump(isset($v4));//bool(true)
    var_dump(isset($v5));//bool(true)
    var_dump(isset($v6));//bool(false)----只要null才返回true
    var_dump(isset($v7));//bool(true)
    var_dump(isset($v8));//bool(true)
    var_dump(isset($v9));//bool(false)-----变量未定义,等同于null
?>

 

  • empty(变量)------用于判断变量是否为空,这里的空等效于布尔false的值都认为是空,如果是空,返回true

 

<?php
    $v1=10;
    $v2=0;
    $v3='';
    $v4='0';
    $v5=[];
    $v6=null;
    $v7=0.0;
    $v8=false;
    var_dump(empty($v1));//bool(false)
    var_dump(empty($v2));//bool(true)
    var_dump(empty($v3));//bool(true)
    var_dump(empty($v4));//bool(true)
    var_dump(empty($v5));//bool(true)
    var_dump(empty($v6));//bool(true)
    var_dump(empty($v7));//bool(true)
    var_dump(empty($v8));//bool(true)
    var_dump(empty($v9));//bool(true)
?>