1. 文章
  2. 文章详情

PHP数据类型介绍

PHP支持8种原始类型(内置类型),其中包括4种标量类型、2种复合类型、2种特殊类型。PHP是一门松散类型的语言,不必向PHP声明变量的数据类型,其自动转换数据类型(C语言、Java需声明变量数据类型)

一.标量类型

1.整型(Integer)

类似于常见的整数,可用十进制、八进制、十六进制指定。十进制是日常使用的数字;

八进制数字前必加上阿拉伯数字“0”;

十六进制数字前必须加“0x”;

获取最大整数PHP_INT_MAX(),为2147463747,超过则自动转为浮点数

2.浮点型(float)

浮点型(也叫浮点数 float,双精度数 double 或实数 real),即小数,可以用小数点或科学计数法表示。科学计数法可用小写e,也可用大写E。如:

$num_float = 1.2e3; //科学计数法,小写e,小数点往后移,扩大3倍

$num_float = 7.0E-10; //科学计数法,大写E

浮点数有效范围: -1.8E-308~1.8E+308

3.标量类型—字符串(String)

由一系列字符组成,其中每个字符等同于一个字节,即256种不同字符的可能性

可用三种方法定义:

单引号形式、双引号形式、Heredoc结构形式(后期“字符串”一章详解)。

4.布尔类型(Boolean)

只有两个值,一个是TRUE(1),另一个FALSE(0)

二.复合类型

5.数组(Array)

6.对象(Object)

三.特殊类型

7.资源(Resource)

由专门的函数建立和使用,例如打开文件数据连接图形画布。我们可以对资源进行操作(创建、使用和释放)。任何资源不被需要应被及时释放。如果忘记释放,系统自动启用垃圾回收机制,在页面执行完毕后回收资源,以避免内存被消耗殆尽。

8.空(Null)

空类型,对大小写不敏感,NULL类型只有一个取值,表示一个变量没有值,当被赋值为NULL或尚未被赋值或被unset,这三种情况下变量被认为是NULL。

四.判断数据类型

is_bool() //检测变量是否是布尔型

is_int() //检测变量是否是整型

is_string() //检测变量是否字符串

is_float() //检测变量是否是浮点

is_null() //检测变量是否为空

is_array() //检测变量是否数组

is_object() //检测变量是否对象

is_numeric() //检测变量是否为数字或数字字符串

五.类型转换Type Juggling

1.强制转换

PHP 中的类型强制转换和 C 中的非常像:在要转换的变量之前加上用括号括起来的目标类型。

(int), (integer) - 转换为整形 integer

(bool), (boolean) - 转换为布尔类型 boolean

(float), (double), (real) - 转换为浮点型 float

(string) - 转换为字符串 string

(array) - 转换为数组 array

(object) - 转换为对象 object

(unset) - 转换为 NULL (PHP 5)

实例:

$May = 10; // $May 是整数

$Jax = (boolean) $May; // $Jax 是布尔值


2.自动转换

$foo = "1"; // $foo 是字符串 (ASCII 49)

$foo *= 2; // $foo 现在是整数 (2)

$foo = $foo * 1.3; // $foo 现在是浮点数 (2.6)

$foo = 5 * "10 Little May"; // $foo 是整数 (50)

$foo = 5 * "10 Small Jax"; // $foo 是整数 (50)

自动转换优先级: 布尔 > 整型 > 字符串

如果是纯字符串按ASCII进行比较

如果是纯数字字符串,先转数字再比较

六.伪类型

伪类型(Pseudo-types)是PHP里用于指示参数可以使用的类型和值。注意,它们不是 PHP 的原生类型

mixed

说明一个参数可以接受多种不同的(但不一定是所有的)类型

Number

说明一个参数可以是 integer 或者 float

callback

在PHP 5.4引入callable类型前使用了callback伪类型,二者含义完全相同

array | object

是参数既可以是 数组(array) 也可以是对象(object)

void

作为返回类型意味着函数的返回值是无用的

...

在函数原型中,表示等等的意思。当一个函数可以接受任意个参数时使用此变量名

七.获取/设定类型

1.settype($var,'type')设置变量类型,返回true与false

2.gettype($var) 获取变量类型,返回PHP八大类型的名称

不要使用 gettype() 来测试某种类型,因为其返回的字符串在未来的版本中可能需要改变。此外,由于包含了字符串的比较,它的运行也是较慢的。使用 is_* 函数代替。

参考:https://zhuanlan.zhihu.com/p/32406993

发表评论

登录后才能评论

评论列表(0条)