PHP中,支持8种原始类型,其中包括四种标量类型、两种复合类型和两种特殊类型。PHP是一门松散类型的语言,不必向PHP声明变量的数据类型,PHP会自动把变量转换为自动的数据类型,一定程度降低了学习PHP的门槛。
布尔类型(boolean)
只有两个值,一个是TRUE,另一个FALSE,可以理解为是或否。它不区分大小写,也就是说”TRUE”和“true”效果是一样的。主要用在条件结构(条件结构在后面部分会介绍)中,例如判断是否满足条件的时候,是用“true”表示满足,用“false”表示不满足。需要注意的是,当我们用”echo”指令输出布尔类型时,如果是“true”则输出的是“1”,“false”则什么也不输出。我们可以使用“var_dump”函数,获取它真正的数据类型。
输出:
整型(integer)
类似于常见的整数。它可以用十进制、八进制、十六进制指定。十进制就是日常使用的数字;八进制,数字前必须加上“0”(这个0是阿拉伯数字0,可不是英文字母“欧”哦);十六进制,数字前必须加“0x” (这个0也是阿拉伯数字0,不是“欧”哦)。如:
<?php $data_int = 1234; // 十进制数 $data_int = -567; // 一个负数 $data_int = 0123; // 八进制数(等于十进制的 83) $data_int = 0x1a; // 十六进制数(等于十进制的 26) ?>
浮点型(浮点数、双精度数或实数)
也就是通常说的小数,可以用小数点或者科学计数法表示。科学计数法可以使用小写的e,也可以使用大写的E。例如:
<?php $num_float = 1.234; //小数点 $num_float = 1.2e3; //科学计数法,小写e $num_float = 7.0E-10; //科学计数法,大写E ?>
字符串
字符串是由一系列字符组成,在PHP中,字符和字节一样,也就是说,一共有256种不同字符的可能性。
字符串型可以用三种方法定义:单引号形式、双引号形式和Heredoc结构形式。
输出:
当双引号中包含变量时,会将变量解析;
当单引号中包含变量时,变量会被当做字符串输出。
输出:
当你的字符串中包含引号的时候:
第一种方案:在单引号中嵌入双引号,如上图第1行所示;
第二种方案:在双引号中嵌入单引号,如上图第2行所示;
第三种方案:使用转义符“”(后面部分还有介绍),分别如上图第3行和第4行所示;
PHP特殊类型
资源
资源(resource):资源是由专门的函数来建立和使用的,例如打开文件、数据连接、图形画布。我们可以对资源进行操作(创建、使用和释放)。任何资源,在不需要的时候应该被及时释放。如果我们忘记了释放资源,系统自动启用垃圾回收机制,在页面执行完毕后回收资源,以避免内存被消耗殆尽。
空类型
NULL(NULL):NULL是空类型,对大小写不敏感,NULL类型只有一个取值,表示一个变量没有值,当被赋值为NULL,或者尚未被赋值,或者被unset(),这三种情况下变量被认为为NULL。
输出:
常量
常量可以理解为值不变的量(如圆周率);或者是常量值被定义后,在脚本的其他任何地方都不可以被改变。PHP中的常量分为自定义常量和系统常量(后续小节会详细介绍)
自定义常量是根据我们开发的需要,而定义的常量,它通过使用PHP中的函数define()定义。
define()函数的语法格式为:
bool define(string $constant_name, mixed $value[, $case_sensitive = true])
第一个参数“constant_name”为必选参数,常量名称,即标志符,常量的命名规则与变量的一致,但是要注意哦,它可不带美元符号哦。第二个参数“value”为必选参数,它是常量的值。第三个参数“case_sensitive”为可选参数,指定是否大小写敏感,设定为true表示不敏感,一般不指定第三个参数的情况下,默认第三个参数的值为false。
(注: string表示参数类型为字符串类型,mixed表示参数类型可以接受为多种不同的类型,case_sensitive = true表示默认为布尔类型TRUE)
常量主要功效是可以避免重复定义,篡改变量值。
输出:
注意单引号和双引号的区别。
常量如何取值
获取常量值的有两种方法取值。第一种是使用常量名直接获取值;
第二种是使用constant()函数。它和直接使用常量名输出的效果是一样的,但函数可以动态的输出不同的常量,在使用上要灵活、方便,其语法格式如下:
mixed constant(string constant_name)
第一个参数constant_name为要获取常量的名称,也可为存储常量名的变量。如果成功则返回常量的值,失败则提示错误信息常量没有被定义。
(注:mixed表示函数返回值类型为多种不同的类型,string表示参数类型为字符串类型)