[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 &$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]练习: 检测通过路径传参获取的数据是什么类型,并且打印出来。
- 序言
- 第一章:准备工作
- 写在学习之前的话
- web应用开发结构
- 开发工具/环境
- 第二章:展现层面(HTML/CSS)
- HTML简介
- HTML基础
- HTML编码
- HTML链接
- HTML图像
- HTML列表
- HTML表单
- HTML表格(分水岭)
- HTML 实体
- HTML框架
- CSS层叠样式表
- CSS选择器
- CSS文本/字体
- CSS继承和叠加
- CSS框模型
- CSS浮动(分水岭)
- CSS定位
- CSS背景
- CSS图标字体
- CSS补充
- 开发技巧
- 第三章:展现层面(Javascript)
- JS简介
- JS实现
- JS输出交互
- JS变量
- JS数据类型
- JS运算符
- JS流程控制(分水岭)
- JS函数
- JS数组
- JS对象(分水岭)
- JS数组对象
- JS字符串对象
- JS数学对象
- JS日期对象
- JS BOM对象(分水岭)
- JS DOM对象
- JS事件对象
- JS元素对象
- JS DOM节点
- 第四章:展现层面(Jquery)
- JQ简介
- JQ使用
- JQ选择器
- JQ筛选
- JQ属性
- JQ-CSS
- JQ事件
- JQ文档处理
- JQ效果
- JQ-ajax
- 第五章:逻辑/业务层面(PHP)
- PHP简介
- PHP变量
- PHP数据类型
- PHP常量
- PHP运算符
- PHP流程控制
- PHP函数(分水岭)
- PHP日期
- PHP数学
- PHP数组
- PHP字符串
- PHP正则表达式(分水岭)
- PHP目录操作
- PHP文件
- PHP上传/下载
- PHP面向对象(分水岭)
- PHP图像处理
- PHP会话控制
- Ajax异步处理
- PHPMysql扩展
- PHPMysqli扩展
- PHPPdo扩展
- PHP接口
- PHP命名空间
- 第六章:逻辑/业务层面(框架设计)
- 第七章:存储层面(mysql)
- Mysql基础
- Mysql Sql简介
- Mysql数据库
- Mysql数据类型
- Mysql数据表
- Mysql操作记录
- Mysql查询
- Mysql修改表结构
- Mysql日期与时间
- Mysql分组统计
- Mysql多表查询
- Mysql安全
- Mysql存储引擎
- Mysql事务
- Mysql视图
- Mysql触发器
- Mysql存储过程
- Mysql存储函数
- Mysql优化
- 第八章:服务器(Linux)
- Linux介绍与安装
- Shell
- 目录与文件操作
- VIM编辑器使用
- 帐号管理
- SUDO
- 权限控制
- 压缩与打包
- 软件安装
- 计划任务
- 进程管理
- 宝塔Linux面板