1.PHP数据类型PHP数据类型主要分为三类:标量数据类型String(字符串)Integer(整数)Float(浮点型)Boolean(布尔)复合数据类型Array(数组)Object(对象)特殊数据类型resource(resource)NULL(空值)标量数据类型是数据结构中最基本的单元,只能存储一种数据。1.1.字符串(string)字符串是由连续的字母、数字或字符组成的字符序列。PHP提供了四种表示字符串的方式,分别是单引号、双引号、heredoc语法结构和nowdoc语法结构(分隔符<<<)。①单引号和双引号的区别如下。""双引号内的变量会被编译器解析然后输出。''单引号里面的变量不解析直接输出,所以单引号的执行速度比双引号快。例如:$number=100;echo'$number=',$number;//结果是:$number=100echo"$number=",$number;//结果为:100=100说明:定义字符串时,如果没有特殊要求,尽量使用单引号。转义符的使用双引号中的“\”转义符可以输出的特殊字符如下:转义序列字符\n换行符\r回车符\ttab制表符\\反斜杠\$$唯一可以输出的特殊字符通过符号\"双引号和单引号中的"\"转义字符输出为:转义序列字符\\反斜杠\'单引号②heredoc和nowdoc语法结构(分隔符<<<)heredoc和nowdoc的语法结构为:以“<<<”开头,后接起始标识符名,末尾引用的标识符名必须与起始标识符名相同,以分号结尾<<
$name是世界上最好的语言!
EOD;echo$nowdoc;//输出:$name是世界上最好的语言!?>字符串操作详见字符串章节。1.2.Integer(整数)Integer数据只能包含整数。整数数据的规则是:整数数据必须至少有一个数字(0~9)。整数数据不能包含逗号或空格。整数数据没有小数点。整数数据可以是正数也可以是负数。整数数据可以指定为3种格式,即十进制、十六进制(以0x为前缀)和八进制(以0为前缀)。$八月=012;//八进制$dec=10;//十进制$hex=0xa;//hexadecimal请注意,在PHP7中,包含十六进制字符的字符串不再被视为数字,而是将其视为普通字符串。1.3.Float(浮点类型)浮点数据可用于存储整数、小数和指数。1.4。布尔型(Boolean)布尔型数据只有两种,即真和假。布尔变量通常用在条件判断语句中。其他数据类型基本都有布尔属性:数据类型truefalseintegernon-00floating-pointtypenon-00.0stringnon-emptynon-zero''emptystringor'0'string数组类型包含元素不包含任何元素对象类型Alwaystrue资源类型始终为trueNULL类型始终为false1.5。数组(array)数组是一组数据组成一个可操作的整体,一系列数据可以包括标量数据、对象、资源以及PHP中支持的其他语法结构等。一般来说,数组中的单个数据称为数组一个元素,该元素分为索引(键名)和值两部分。索引(键)可以是数字或字符串,值可以是任何数据类型。在PHP中,通常使用array()来创建数组或直接赋值。准确地说,array()是一个结构体而不是一个函数。具体格式如下:$array1=array('val1','val2','val3'...);$array2=array(key1=>'val1',key2=>'val2',key3=>'val3',...);$array[key1]='val1';有关详细信息,请参阅数组部分。1.6.对象编程语言的应用有两种方法:过程和面向对象。在PHP中,用户可以自由使用这两种方法。对象数据类型也可用于存储数据。在PHP中,必须声明对象。首先,您必须使用class关键字声明类对象。类是可以包含属性和方法的结构。然后在类中定义数据类型,在实例化类中使用数据类型。1.7.resource(资源)资源是一种特殊的变量类型,也叫句柄,通过特殊的函数创建和使用。可以对资源进行操作,例如创建、使用和释放。任何资源都应该在不需要的时候及时释放。系统也会在页面执行后自动启用垃圾回收机制回收资源,避免内存消耗。在编程期间几乎从不访问资源类型。1.8.NULL(空值)空值,顾名思义,就是没有给变量设置值。赋null值有三种情况:一个没有被赋值的变量,被赋值为null,被unset()函数处理。1.9.数据类型检测PHP内置了一系列检测数据类型的函数,可以检测不同类型的数据,判断其是否属于某种类型,匹配则返回true,否则返回false。检测数据类型函数如表所示:函数检测类型示例is_bool()为布尔类型is_bool(srue),is_bool(false)is_string()为字符串类型is_string('string'),is_string(1234)is_float()/is_double()是否为浮点型is_float(3.1415),is_float('3.1415')is_integer()/is_int()是否为整型is_integer(34),is_integer('34')is_null()为nullvalueis_null(null)is_array()是一个数组is_array($arr)is_object()是一个对象is_object($obj)is_numeric()是一个数字或一串数字is_numeric('5'),is_numeric('bcc110')1.10。数据类型获取1.如果要检查表达式的值和类型,请使用var_dump()。2.如果你只是想得到一个易于阅读的类型表达式用于调试,使用getType()。3、查看某个类型,不要使用gettype(),而是使用is_type()函数。1.11.数据类型转换虽然PHP是一门弱类型语言,但有时还是需要进行类型转换。PHP数据类型转换主要有两种转换方式。1.11.1.自动类型转换所谓自动类型转换,就是当操作需要或不符合预期的结果类型时,PHP会自动进行类型转换,无需开发者进行任何操作。在程序开发过程中,最常见的自动类型转换有三种,即转换为boolean类型、转换为integer类型和转换为string类型。进行各类型的自动转换时需要注意以下几点。转换为布尔值时,null、整数值0、浮点值0.0、空字符串和字符串“0”都会被转换为false,其他值都会被转换为true。布尔型转整型时,将布尔值true转为整型1;布尔值false转换为整数0。浮点数转换为整数时,去掉小数部分,向下舍入。将字符串转换为整数时,如果字符串以数字开头,则使用该值,否则转换为0。将布尔值转换为字符串时,将布尔值true转换为字符串“1”;布尔值false转换为空字符串。整型或浮点型转字符串时,直接将数字转为字符串。1.11.2.强制类型转换所谓强制类型转换,就是在编写程序时,手动对数据类型进行转换。主要有以下三种转换方式。1)将目标类型用括号括起来放在要转换的变量之前。该方法只需要在变量前加上用括号括起来的类型名,允许转换的类型见表:函数检测示例类型(int),(integer)转换为整数(int)$str,(integer)$boo(bool),(boolean)转换为Boolean(bool)$num,(boolean)$str(float),(double),(real)转换为浮点数(float)$str(string)转换为字符(string)$boo(array)转换为数组(array)$str(object)转换为对象(object)$str2)使用三种特定类型的转换函数,intval(),浮点数(),数列数()。其中,intval()函数用于转换为整数,floatval()函数用于转换为浮点型,strval()函数用于转换为字符型。3)使用函数settype()进行转换。settype()函数用于设置变量的数据类型,可以将指定的变量转换为指定的数据类型。boolsettype(mixed$var,string类型)