[TOC] >[success]PHP 支持 8 种原始数据类型。 ## PHP数据类型 **四种标量类型:** 1. boolean(布尔型) 2. integer(整型) 3. float(浮点型,也称作 double) 4. string(字符串重点) >[danger]标量可以理解为:是数据结构中最基本单元,只能储存一个数据 **两种复合类型:** 1. array(数组重点) 2. object(对象重点) **最后是两种特殊类型:** 1. resource(资源) 2. NULL(无类型) ## Boolean 布尔类型 这是最简单的类型。boolean 表达了真值,可以为 TRUE 或 FALSE。 **语法** 要指定一个布尔值,使用关键字 TRUE 或 FALSE。两个都不区分大小写。 ~~~ <?php $foo = True; // assign the value TRUE to $foo ?> ~~~ 当转换为 boolean 时,以下值被认为是 FALSE: 1. 布尔值 FALSE 本身 2. 整型值 0(零) 3. 浮点型值 0.0(零) 4. 空字符串,以及字符串 "0" 5. 不包括任何元素的数组 6. 不包括任何成员变量的对象(仅 PHP 4.0 适用) 7. 特殊类型 NULL(包括尚未赋值的变量) 8. 从空标记生成的 SimpleXML 对象 9. 所有其它值都被认为是 TRUE(包括任何资源)。 ## Integer 整型 一个 integer 是集合 ? = {..., -2, -1, 0, 1, 2, ...} 中的一个数。前面可以加上 可选的符号(- 或者 +) ## Float 浮点型 浮点型(也叫浮点数 float,双精度数 double 或实数 real),简单理解为带小数点的数值类型,可以用以下任一语法定义: ~~~ <?php $a = 1.234; $b = 1.2e3; $c = 7E-10; ?> ~~~ ## String 字符串 (重点) 一个字符串 string 就是由一系列的字符组成,其中每个字符等同于一个字节。 语法 **一个字符串可以用 3 种方式表达:** 1. 单引号 2. 双引号 3. 定界符 ~~~ <?php $str = '学并思'; $str = "学并思"; $str = <<<EOD Example of string spanning multiple lines using heredoc syntax. EOD; ~~~ >[danger]注意:字符如果由双引号括起来,里面有变量,可以进行解析。 ## NULL 特殊的 NULL 值表示一个变量没有值。NULL 类型唯一可能的值就是 NULL。 在下列情况下一个变量被认为是 NULL: 1. 被赋值为 NULL。 2. 尚未被赋值。 3. 被 unset()。 >[danger]其它数据类型后面讲。 ## 取得和判断数据类型 <table> <tbody> <tr><td>gettype</td><td> — 获取变量的类型</td> </tr><tr><td>is_array</td><td> — 检测变量是否是数组</td> </tr><tr><td>is_bool</td><td> — 检测变量是否是布尔型</td> </tr><tr><td>is_double</td><td> — is_float 的别名</td> </tr><tr><td>is_float</td><td> — 检测变量是否是浮点型</td> </tr><tr><td>is_int</td><td> — 检测变量是否是整数</td> </tr><tr><td>is_integer</td><td> — is_int 的别名</td> </tr><tr><td>is_long</td><td> — is_int 的别名</td> </tr><tr><td>is_null</td><td> — 检测变量是否为 NULL</td> </tr><tr><td>is_numeric</td><td> — 检测变量是否为数字或数字字符串</td> </tr><tr><td>is_object</td><td> — 检测变量是否是一个对象</td> </tr><tr><td>is_real</td><td> — is_float 的别名</td> </tr><tr><td>is_resource</td><td> — 检测变量是否为资源类型</td> </tr><tr><td>is_scalar</td><td> — 检测变量是否是一个标量</td> </tr><tr><td>is_string</td><td> — 检测变量是否是字符串</td> </tr></tbody> </table> ## 类型转换 <table> <tbody> <tr> <td><a>settype</a></td> <td>bool settype ( mixed &amp;$var , string $type )</td> <td>设置变量的类型</td> </tr> <tr> <td><a>intval</a></td> <td>int intval ( mixed $var [, int $base = 10 ] )</td> <td>获取变量的整数值</td> </tr> <tr> <td><a>floatval</a></td> <td>float floatval ( mixed $var )</td> <td>获取变量的浮点值</td> </tr> <tr> <td><a>strval</a></td> <td>string strval ( mixed $var )</td> <td>获取变量的字符串值</td> </tr> </tbody> </table> >[danger]练习: 检测通过路径传参获取的数据是什么类型,并且打印出来。