Blogger Information
Blog 9
fans 1
comment 1
visits 12028
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP的数据类型
大象爱好者的博客
Original
1353 people have browsed it

数据类型的分类

   1.标量类型

          也可以理解为简单类型、基本类型。包含以下4种类型:

                字符串 string

                整数类型 int

                浮点类型   float  double 

               布尔类型   bool    boolean

   2. 复合类型 

             数组

             对象

   3. 特殊类型

          空类型null: 有且只有一个数据可以使用,那就是null。

          资源类型resource:表示一种外部的可供php使用(操作)的资源(比如图片,数据库,文件等)。

 整型数据类型

         1.四种书写形式

               10进制形式: 

                  $a = 123;

               8进制形式:

                  $b = 0123;      // 以0开头,只能出现0-7这8个数字

               16进制形式:

                  $c = 0x12A34   //  以0x开头,可以出现0-9,A-F这16个数字

               2进制形式:

                  $d = 0b1011011010;     // 以0b开头,只能出现0和1这2个数字

               1.png

          2.进制之间的相互转换

                  通过函数来进行转换。

                  10进制转2、8、16进制

                            decbin():将10进制转为2进制

                            decoct():将10进制转为8进制

                            dechex():将10进制转为16进制

                   2、8、16进制转换成10进制

                           bindec():将2进制数字字符串转为10进制

                           octdec():将8进制数字字符串转为10进制

                           hexdec():将16进制数字字符串转为10进制

浮点数据类型   

         浮点数就是相当于数学上的“小数”

         两种书写形式:

                  常规形式(带小数点):

                             $f1 = 0.1;   //或者1.23;   123.0;

                  科学计数法形式(带e):

                             $f2 = 1.23e3;  //表示1.23 乘以10的3次方

                             $f3 = 123e2;  //这个也是浮点数,虽然其结果值是一个“整数”(12300)

         

        特别注意:浮点数不要随便做相等比较(==):因为浮点数进行相等比较,是“不可靠”的:

                 $v1 = 0.1 + 0.2;

                 $v2 = 0.3;

                问:$v1和$v2相等吗?

       

               那怎么办?

                   需要在考虑精度的基础上,将浮点数转换为整数,然后进行“比较大小”,此时,在精度范围内,如果相等,我们                      就认为是相等的。将上述程序改造为:

                     2.png

布尔类型boolean

    只有两个数据值: true,  false(不区分大小写)

    在需要当做“布尔值”进行判断或比较的时候,以下数据会被当作布尔值的  false:

         false,  0,  0.0,  “”,   null,  ‘0’,  空数组

     其余都被当做布尔值的 true。

字符串string

       可以使用单引号或双引号来表示(引起来)

      表示一串“连续的字符”,最短的字符串是“空字符串”,比如: $str1  =  “”

      注意:这个不是空字符串:  “  ”,  因为其中包括了1个空格字符。

      $name  = “张三”;

      $edu = ‘北京大学’;

      $title = “关于微信应用的几个改进建议”; //文章标题

      $v1 = ‘’;  //这也是字符串(空字符串), 跟null不同!!!

      $v2 = ‘123’;  //这还是字符串

      $v3 = “false”;  //这仍然是字符串

     

     特别注意:

             双引号字符串中,如果出现“$”符号,则该符号后的连续字符(单词)会被识别为一个变量名。

             如果识别成功(即确实存在该变量),则会将该变量转换为实际内容。

             如果识别失败(即实际没有该变量),则会报错。

数组类型array

           数组,就是将多个“数据”放在一起,排成一个有序序列,这个序列作为一个整体(里面包括了多个数据),就称                     为“数组”。比如:

          $info1  =  array(‘张三丰’,  18,  “男” );  

           //新版本中,还可以这样写: [‘张三丰’,  18,  “男” ]

           或: $info2  =  array(‘name’ => ‘张三丰’,  ‘age’=>18,  ‘gender’ => “男” );

空类型NULL           

         只有一个值: null(不区分大小写)

        $v1 = null; //此时,具有变量$v1,但其中的数据是“空的”(没有数据)

        空值变量,isset()判断的结果是false(即不存在)。

 类型判断

       gettype(): 获取一个变量的类型,结果为一个变量类型的名称(字符串)

              $v1 = 10;

              $r1 = gettype( $v1 ); //结果为:“integer” 

             $v2 = ‘abc’;

             $r2 = gettype( $v2 ); //结果为:“string”

             $v3 = 1.23;

             $r3 = gettype( $v3 ); //结果为:“double”(返回的是double,但其实就是我们所说的float类型)

     

     settype(): 设置一个变量的类型

               $v1 = 10;  //此时,$v1中数据是整数类型

               settype( $v1,  ‘string’); //此时,$v1是字符串类型,即其中的数据变成了:“10”

               echo  gettype( $v1 ); //”string”

               var_dump(): 输出变量的“完整信息”,包括变量类型,长度(如果需要),内容

               3.png

         判断是否为某种类型(类型系列函数):  

               is_int() / is_integer():判断是否为整数类型

               is_float():判断是否为浮点类型

               is_bool():判断是否为布尔类型

               is_string():。。。

               is_array():。。。

               is_numeric():判断是否为“数字”类型(含整数,小数,以及“纯数字字符串”)

               is_object():

        两个特殊判断:

           isset(): 判断一个变量是否存在,或变量中是否有数据,有则返回true,否则返回false。

                        如果变量中有数据,返回true

                        如果变量中没有有数据,返回false

         empty():判断是否为“空的”。如果确实是“空的”,返回true,否则返回false。

                         如果变量中的数据为空的,返回true

                         如果变量中的数据不是空的,返回false

       “              空的”的意思,比较接近日常生活中的“没有”。以下值都是空的(empty):

                        0, 0.0, “”, “0”, false, array(), //这几项,empty判断的结果都是true

                        而空(null)是一个计算机中的特殊概念,表示“完全不存在”,可以理解为“真空”。

类型转换

       1 自动转换   

             我们无需做任何处理,而是,程序会根据运算时运算符所需要的数据类型进行转换。

             如果参与运算的数据不是需要的类型,则会自动转换为需要的数据类型。

             $v1 = 1 + “3”; //结果是4;

             $v2 = 1  .  “3”; //“.”是字符串连接符,这里,1会被转换为字符串,结果是:“13”

             典型自动转换:

                     转换为数字:

                    1+”2”   //3

                 “1” + “2”   //3

                    1 + ”2abc”  //3

                    1 + ”2abc34”  //3

                    1 + “abc”   //1

                   1 + “abc2”  //1

                   1.2 + “2”   //3.2

                   1.2 + “2.2abc”  //3.4

                   1.2 + “abc2.2”  //1.2

                   “1.2abc” + 2  //3.2

                  “1.2abc” + “2abc” //3.2

       规律:一个字符串当做数字,就会将该字符串的最前面的数字转换为数字值,如果没有,就为0

            转换为整数(直接保留整数部分):

             10.8  %  3.6       // 先两边取整,再取余  1

        “10.8”  %  “3.6”   

        “10.8”  %  “3.6abc”

        “10.8ab”  %  “3.6cd” 

      2 强制转换

            人为使用强转换语法进行转换,比如:

                    $v1 = (int) “1”; //结果,$v1是整数类型的1

                   $v2 = (float)  “1.23”; //结果,$v2是浮点类型的1.23

                   $v3 = (string) $v1; //结果,$v3是字符串“1”

        


    

  

               

      

      

    


      

       

 

          

 



 

         



                   

         

          

         

  

             

         

         

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
1 comments
2019-04-15 20:00:34
简单明了易懂
1 floor
Author's latest blog post