本周学习总结

PHP是一种服务器端的,嵌入html1的脚本语言,PHP区别其他客服端JAVA的地方是它的代码在服务器端执行。PHP主要是用来开发web站点,也就是网站,它和asp、java等语言类似,都是运行在服务器上的程序,用来动态地为用户提供网页服务。

本周学习知识点:

Boolean 布尔类型

这是最简单的类型。Boolean表达了真值,可以为 TRUE 或 FALSE。

语法

要指定一个布尔值,使用关键字 TRUE 或 FALSE。两个都不区分大小写。

通常运算符所返回的 Boolean 值结果会被传递给控制流程。

转换为布尔值

要明确地将一个值转换成 Boolean,用 (bool) 或者 (boolean) 来强制转换。但是很多情况下不需要用强制转换,因为当运算符,函数或者流程控制结构需要一个 Boolean参数时,该值会被自动转换。

Integer 整型

语法

整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 +)。

二进制表达的 Integer 自 PHP 5.4.0 起可用。

要使用八进制表达,数字前必须加上 0(零)。要使用十六进制表达,数字前必须加上 0x。要使用二进制表达,数字前必须加上 0b。

整数溢出

如果给定的一个数超出了 Integer 的范围,将会被解释为 float。同样如果执行的运算结果超出了 Integer 范围,也会返回 float。

转换为整型

要明确地将一个值转换为 Integer ,用 (int) 或 (integer) 强制转换。不过大多数情况下都不需要强制转换,因为当运算符,函数或流程控制需要一个 Integer 参数时,值会自动转换。还可以通过函数 intval() 来将一个值转换成整型。

FALSE 将产生出 0(零),TRUE 将产生出 1(壹)。

Float 浮点型

浮点数的精度

浮点数的精度有限。尽管取决于系统,PHP 通常使用 IEEE 754 双精度格式,则由于取整而导致的最大相对误差为 1.11e-16。非基本数学运算可能会给出更大误差,并且要考虑到进行复合运算时的误差传递。

此外,以十进制能够精确表示的有理数如 0.1 或 0.7,无论有多少尾数都不能被内部所使用的二进制精确表示,因此不能在不丢失一点点精度的情况下转换为二进制的格式。这就会造成混乱的结果

所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。

比较浮点数

要测试浮点数是否相等,要使用一个仅比该数值大一丁点的最小误差值。该值也被称为机器极小值(epsilon)或最小单元取整数,是计算中所能接受的最小的差别值。

 

NaN

某些数学运算会产生一个由常量 NAN 所代表的结果。此结果代表着一个在浮点数运算中未定义或不可表述的值。任何拿此值与其它任何值进行的松散或严格比较的结果都是 FALSE。

由于 NAN 代表着任何不同值,不应拿 NAN 去和其它值进行比较,包括其自身,应该用 is nan()来检查。

String 字符串

一个字符串 String 就是由一系列的字符组成,其中每个字符等同于一个字节。这意味着 PHP 只能支持 256 的字符集

语法

一个字符串可以用 4 种方式表达:

1.单引号

定义一个字符串的最简单的方法是用单引号把它包围起来(字符 ')。

要表达一个单引号自身,需在它的前面加个反斜线(\)来转义。要表达一个反斜线自身,则用两个反斜线(\\)。其它任何方式的反斜线都会被当成反斜线本身:也就是说如果想使用其它转义序列例如 \r 或者 \n,并不代表任何特殊含义,就单纯是这两个字符本身。

Note: 不像双引号和 heredoc语法结构,在单引号字符串中的变量和特殊字符的转义序列将不会被替换。 

Array 数组

PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性。由于数组元素的值也可以是另一个数组,树形结构和多维数组也是允许的。

最后一个数组单元之后的逗号可以省略。通常用于单行数组定义中,

key 可以是 int 或者 String。value 可以是任意类型。

此外 key 会有如下的强制转换:

  • 包含有合法整型值的字符串会被转换为整型。例如键名 "8" 实际会被储存为 8。但是 "08" 则不会强制转换,因为其不是一个合法的十进制数值。 
  • 浮点数也会被转换为整型,意味着其小数部分会被舍去。例如键名 8.7 实际会被储存为 8。 
  • 布尔值也会被转换成整型。即键名 true 实际会被储存为 1 而键名 false 会被储存为 0。 
  • null会被转换为空字符串,即键名 null 实际会被储存为 ""。 
  • 数组和对象不能被用为键名。坚持这么做会导致警告:Illegal offset type。 

如果在数组定义中多个单元都使用了同一个键名,则只使用了最后一个,之前的都被覆盖了。

 

 

 

posted @ 2014-04-18 17:27  胡珍  阅读(134)  评论(0编辑  收藏  举报