php基础学习之数据类型

php数据类型的基本概念

数据类型:data type,在PHP中指的是数据本身的类型,而不是变量的类型

PHP 是一种弱类型语言变量本身没有数据类型

把变量类比成一个杯子(容器),杯子可以装雪碧、可乐,雪碧或可乐是饮料类型,但这个杯子是没被规定必须装什么类型的!


php数据类型

在 PHP 中将数据分为三大类八小类——
基本数据类型:4个小类

  • 整型:int,系统分配4或8个字节存储(32位机器为4,64位机器为8),表示整数类型
  • 浮点型:float/double,float和int一样根据机器位数分配4或8个字节,double则固定分配8个字节存储,表示小数
  • 字符串型:string,系统根据实际长度分配,表示字符串
  • 布尔型:bool,表示布尔类型,只有两个值——true和false


复合数据类型:2个小类,

  • 对象类型:object,存放对象(面向对象思想)
  • 数组类型:array,存储多个数据

特殊数据类型:2个小类

  • 资源类型:resource,存放资源数据(PHP 外部数据,如数据库、文件)
  • 空类型:NULL,只有一个值就是 NULL(不能运算)

gettype()函数可以获取变量的类型,格式为:gettype(变量名)


php数据类型转换

①基本概念:

在很多的条件下,需要指定的数据类型。需要将外部数据(当前 PHP 取得的数据)转换成目标数据类型。
在 PHP 中有两种类型转换方式:

  • 自动转换(我也习惯称为隐式转换):系统根据需求判定完成转换(用的比较多,效率偏低)
  • 强制(手动)转换:开发者根据需要的目标类型手动进行转换,语法格式为小括号内写目标类型

在转换过程中,用的比较多的是转布尔类型(在需要判断的情况下)和转数值类型(在需要算术运算的情况下)

②其它类型转布尔类型(bool)

在 PHP 中转变成bool类型后会是false的情况较少,故特殊记忆转为bool类型后值是false的值,其余则为true。

下面给出表格对照,可以观察到,主要是这几种形式的表达式的值转换为bool类型后会是false——

  • 变量未定义
  • 变量定义了但未赋值
  • 变量的值跟空相关(空字符串"",空值null,空数组array())
  • 变量的值跟零相关(整数0,字符'0',字符串"0")(注:PHP和Python一样不强区分字符和字符串,这里是笔者根据C、C++、Java的习惯进行主观区分,即单引号包围一个字符,双引号包围一个字符串)
  • 特殊的,变量的值本身就为false,转为bool类型自然是false,但如果变量的值是字符串"false",转为bool类型却是true

php基础学习之数据类型_第1张图片

 ③其它类型转数值类型(int、float、double等)

首先:所有数据类型转为float类型时,结果的类型都是double。

(1)布尔类型(bool)转整型(int)或者浮点型(float/double)

true转为1,false转为0,转浮点型时无论是float还是double,结果都为double,且不显示小数位。

php基础学习之数据类型_第2张图片

php基础学习之数据类型_第3张图片 (2)string类型转整型(int)或者浮点型(float/double)

以字符开头的字符串,转数值类型的结果的值,都为0

php基础学习之数据类型_第4张图片

 以数字开头的字符串,

转int类型时,从左往右一直取到字符出现;转float/double类型时,小数点会取且只取一次

php基础学习之数据类型_第5张图片


数据类型的获取、判断、设定 

这部分作为补充内容,不建议记忆,需要用或者见到但不认识时去查阅一下,API太多了,能不记尽量不记。

gettype()函数获取变量的数据类型,如gettype($a);

is_xxx()函数判断某变量是不是xxx类型,如is_int($a);

settype()函数设置某变量的类型,如settype($a, "int")

注意settype()函数和强制转换的区别,强制转换是复制一份数据进行转换,而settype()函数是直接对原数据的类型进行设置。

php基础学习之数据类型_第6张图片

你可能感兴趣的:(php基础学习,php,学习笔记)