概览
PHP支持8种原始类型,包括4种标量类型,即boolean(布尔型)、integer(整型)、float/double(浮点型)和string(字符串型);
2种复合类型,即array(数组)和object(对象);
2种特殊类型,即resource(资源)与null。
标量
标量数据类型是数据结构中最基本的单元,只能存储一个数据。
布尔型(boolean)
布尔型是PHP中较为常用的数据类型之一,它保存一个true值(1)或者false值(0),其中true和false是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。例如:
浮点型(float/double)
浮点数据类型可以用来存储数字,也可以保存小数。它提供的精度比整数大得多。
在64位的操作系统中,有效的范围是1.7E-308~1.7E+308。
在PHP早期版本中,浮点型的标识为double,也叫作双精度浮点数,两者没有区别。例如圆周率的三种写法:
字符串(string)
字符串是连续的字符序列,由数字、字母和符号组成。字符串中的每个字符只占用一个字节。在PHP中,有3种定义字符串的方式,分别是单引号(')、双引号(")和定界符(<<<)。
单引号中包含的变量会强制转换成字符串输出。例如:
双引号中所包含的变量会自动被替换成实际数值
定界符(<<<)是从PHP 4开始支持的。其本质和双引号没有区别,在使用时后接一个标识符,然后是字符串,最后是同样的标识符结束字符串。例如:
<?php $bool = true; echo <<<std $bool 是布尔类型true的值',其本质和双引号没有区别 。。。。 std; ?>
复合类型
数组(array)
数组由三部分组成:数组名、索引、键值。
数组中的每个数据称为一个元素,元素包括索引(键名)和值(键值)两个部分。元素的索引可以由数字或字符串组成,元素的值可以是多种数据类型。
对象(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(); //调用两种方法 ?>
特殊类型
资源(source)
资源是一种特殊的变量类型,也叫句柄,保存了到外部资源的一个引用,例如:mysql连接、文件句柄,图形画布区域等
资源是通过专门的函数来建立和使用的。
空(null)
空值,顾名思义,表示没有为该变量设置任何值。另外,空值(null)不区分大小写,null和NULL效果是一样的。