概览

PHP支持8种原始类型,包括4种标量类型,即boolean(布尔型)、integer(整型)、float/double(浮点型)和string(字符串型);
2种复合类型,即array(数组)和object(对象);
2种特殊类型,即resource(资源)与null。

标量

标量数据类型是数据结构中最基本的单元,只能存储一个数据。

布尔型(boolean)

布尔型是PHP中较为常用的数据类型之一,它保存一个true值(1)或者false值(0),其中true和false是PHP的内部关键字。主要用来判断真假,例如:


PHP_数据类型_数据类型

整形(integer)

整型数据类型只能包含整数。
32位,64位无符号整型的取值范围:
2^64-1 = +18446744073709551615 ~ -18446744073709551615
2^32-1 = +4294967295 ~ -4294967295
32位,64位有符号整型取值范围:
(2^32)/2-1 = +2147483647 ~ -2147483647
(2^64)/2-1 = +9223372036854775807 ~ -9223372036854775807
减1是因为整型包括0.
整型数可以用十进制、八进制和十六进制来表示。如果用八进制,数字前面必须加0;如果用十六进制,则需要加0x。例如:


PHP_数据类型_PHP_02

浮点型(float/double)

浮点数据类型可以用来存储数字,也可以保存小数。它提供的精度比整数大得多。
在64位的操作系统中,有效的范围是1.7E-308~1.7E+308。
在PHP早期版本中,浮点型的标识为double,也叫作双精度浮点数,两者没有区别。例如圆周率的三种写法:


PHP_数据类型_数据类型_03

字符串(string)

字符串是连续的字符序列,由数字、字母和符号组成。字符串中的每个字符只占用一个字节。在PHP中,有3种定义字符串的方式,分别是单引号(')、双引号(")和定界符(<<<)。

单引号中包含的变量会强制转换成字符串输出。例如:


PHP_数据类型_PHP_04

双引号中所包含的变量会自动被替换成实际数值


PHP_数据类型_PHP_05

定界符(<<<)是从PHP 4开始支持的。其本质和双引号没有区别,在使用时后接一个标识符,然后是字符串,最后是同样的标识符结束字符串。例如:

<?php
	$bool = true;
	echo <<<std
	$bool 是布尔类型true的值',其本质和双引号没有区别
	。。。。
	std;
?>

PHP_数据类型_PHP_06

复合类型

数组(array)

数组由三部分组成:数组名、索引、键值。
数组中的每个数据称为一个元素,元素包括索引(键名)和值(键值)两个部分。元素的索引可以由数字或字符串组成,元素的值可以是多种数据类型。


PHP_数据类型_PHP_07

对象(object)

  • 类:具有相同属性(状态)和方法(行为)的对象称为类,是个抽象的概念。例如:人类,兽类、鱼类
  • 对象:在其他编程语言中常说万物皆对象,就是此对象。日常生活中的实体的东西都是对象,是类的实例化。例如:谢广坤就是人类的实例,哈士奇就是狗类的实例
  • 属性:用来描述具体某个对象的特征就是属性,是静态的。例如:年龄,姓名,身高等
  • 方法:每个对象有它们自己的行为或者是使用它们的方法,是动态的。可以使用这些方法来操作一个对象;例如:唱歌、跳舞,跑步等
name." "; 				//具体的行为
		echo "我是练习时长 ".$this->age." 的练习生";	//具体的行为
		return $this;	//返回此对象以便多次调用
	}
	function hh()
	{
		echo "我喜欢唱跳rap";
	}
}

	$bro = new people;	//将类实例化为对象
	$bro->name='谢广坤';	//给people对象的name属性赋值
	$bro->age='两年半';	//给people对象的age属性赋值
	$bro->action()->hh();	//调用两种方法
?>

PHP_数据类型_数据类型_08

特殊类型

资源(source)

资源是一种特殊的变量类型,也叫句柄,保存了到外部资源的一个引用,例如:mysql连接、文件句柄,图形画布区域等
资源是通过专门的函数来建立和使用的。


PHP_数据类型_数据类型_09

空(null)

空值,顾名思义,表示没有为该变量设置任何值。另外,空值(null)不区分大小写,null和NULL效果是一样的。


PHP_数据类型_数据类型_10