PHP基础
PHP基础 第二章 类型
## 1、四种标量类型: ### 1.1 boolean(布尔型) 当转换为 boolean 时,以下值被认为是 FALSE: - 布尔值 FALSE - 整型值 0(零) - 浮点型值 0.0(零) - 空白字符串和字符串 "0" - 没有成员变量的数组 - 没有单元的对象(仅适用于 PHP 4) - 特殊类型 NULL(包括尚未设定的变量) ### 1.2 integer(整型) 【语法】整型值可以用十进制,十六进制或八进制符号指定,前面可以加上可选的符号(- 或者 +)。 如果用八进制符号,数字前必须加上 0(零),用十六进制符号数字前必须加上 0x。 【整数溢出】如果给定的一个数超出了 integer 的范围,将会被解释为 float。同样如果执行的运算结果超出了 integer 范围,也会返回 float。 【转换】 用 (int)或(integer)或函数intval()来将一个值转换成整型。不过大多数情况下不需强制转换。 从布尔值转换:FALSE 将产生出 0(零),TRUE 将产生出 1(壹)。 从浮点数转换:当从浮点数转换成整数时,数字将被取整(丢弃小数位)。 如果浮点数超出了整数范围,则结果不确定,在此情况下没有警告,甚至没有任何通知! 在 Linux 下返回结果是最小负数(-2147483648),而在 Windows 下返回结果是零(0)。 ### 1.3 float(浮点型,也作“double”) 永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。如果确实需要更高的精度,应该使用任意精度数学函数或者 gmp 函数。 浮点数精度: 显然简单的十进制分数如同 0.1 或 0.7 不能在不丢失一点点精度的情况下转换为内部二进制的格式。这就会造成混乱的结果:例如,floor((0.1+0.7)*10) 通常会返回 7 而不是预期中的 8,因为该结果内部的表示其实是类似 7.9999999999...。 这和一个事实有关,那就是不可能精确的用有限位数表达某些十进制分数。例如,十进制的 1/3 变成了 0.3333333. . .。所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。如果确实需要更高的精度,应该使用任意精度数学函数或者 gmp 函数。 ### 1.4 string(字符串) 可以用三种字面上的方法定义 - 单引号 - 双引号:会解析变量及预定义字符 - 定界符 :会解析变量及预定义字符 ## 2、两种复合类型: ### 2.1 array(数组) 1、定义数组:用array() 2、使用 TRUE 作为键名将使 integer 1 成为键名。使用 FALSE 作为键名将使 integer 0 成为键名。使用 NULL 作为键名将等同于使用空字符串。使用空字符串作为键名将新建(或覆盖)一个用空字符串作为键名的值。不能用数组和对象作为键名。 3、应该始终在用字符串表示的数组索引上加上引号。例如用 $foo['bar'] 而不是 $foo[bar]。这并不意味着总是给键名加上引号。用不着给键名为常量或变量的加上引号,否则会使 PHP 不能解析它们。 4、E_ERROR 也是个合法的标识符,下面的例子是合法的: ```php $error_descriptions[E_ERROR] = "A fatal error has occured"; $error_descriptions[E_WARNING] = "PHP issued a warning"; ``` 5、在双引号字符串中,不给索引加上引号是合法的因此 "$foo[bar]"是合法的。 6、对于任何的类型:整型、浮点、字符串、布尔和资源,如果将一个值转换为数组,将得到一个仅有一个元素的数组(其下标为 0),该元素即为此标量的值。 如果将一个对象转换成一个数组,所得到的数组的元素为该对象的属性(成员变量),其键名为成员变量名。 如果将一个 NULL 值转换成数组,将得到一个空数组。 ### 2.2 object(对象) 对象初始化:要初始化一个对象,用 new 语句将对象实例到一个变量中。 转换为对象:将一个对象转换成对象,它将不会有任何变化。如果其它任何类型的值被转换成对象,内置类 stdClass 的一个实例将被建立。如果该值为 NULL,则新的实例为空。数组转换成对象将使键名成为属性名并具有相对应的值。对于任何其它的值,名为 scalar 的成员变量将包含该值。 ## 3、两种特殊类型: ### 3.1 resource(资源) 用 is_resource() 函数测定一个变量是否是资源,函数 get_resource_type() 则返回该资源的类型 资源是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。 由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此无法将其它类型的值转换为资源。 由于 PHP4 Zend 引擎引进了资源计数系统,可以自动检测到一个资源不再被引用了。这种情况下此资源使用的所有外部资源都会被垃圾回收系统释放。由此原因,很少需要用某些 free-result 函数来手工释放内存 ### 3.2 NULL 殊的 NULL 值表示一个变量没有值。NULL 类型唯一可能的值就是 NULL。 在下列情况下一个变量被认为是 NULL:被赋值为 NULL、尚未被赋值、被 unset() ## 4、伪类型: 4.1 mixed 说明一个参数可以接受多种不同的(但并不必须是所有的)类型。 4.2 number 说明一个参数可以是 integer 或者 float 4.3 callback 回调函数不仅可以是一个简单的函数,它还可以是一个对象的方法,包括静态类的方法
顶部
收展
底部
[TOC]
目录
PHP基础 第一章 基本语法
PHP基础 第二章 类型
PHP基础 第三章 变量
PHP基础 第四章 常量
PHP基础 第五章 运算符
PHP基础 第六章 流程控制
PHP基础 第七章 函数
PHP基础 第八章 命名空间
PHP基础 第九章 异常与错误
PHP基础 第十章 类与对象
PHP基础 第十一章 生成器
PHP基础 第十二章 引用
PHP基础 第十三章 预定义变量
PHP基础 第十四章 上下文(Context)选项和参数
PHP基础 第十五章 支持的协议和封装协议
PHP基础 第十六章 安全
PHP基础 第十七 章 特点
PHP基础 第十八章 PHP 核心:骇客指南
PHP基础 第十九章 核心配置选项列表
相关推荐
PHP函数
PHP设计模式
PHP算法
PHP版本