一.指令分隔符
同 C 或 Perl 一样,PHP 需要在每个语句后用分号结束指令。一段 PHP 代码中的结束标记隐含表示了一个分号;在一个 PHP 代码段中的最后一行可以不用分号结束。如果后面还有新行,则代码段的结束标记包含了行结束。
通常你用某些运算符返回 boolean 值,并将其传递给控制流程。
<?php // == 是一个操作符,它检测两个变量是否相等,并返回一个布尔值 if ($action == "show_version") { echo "The version is 1.23"; } // 这样做是不必要的... if ($show_separators == TRUE) { echo ""; } // ...因为可以使用下面这种简单的方式: if ($show_separators) { echo "
"; } ?>
要明确地将一个值转换成 boolean,用 (bool) 或者 (boolean) 来强制转换。但是很多情况下不需要用强制转换
三.字符串转变成数字:
当一个字符串 被用在了一个数字的环境中,结果和类型如下:
**如果字符串 没有包含 ‘.’,‘e’或’E’ 并且数字值符合整数类型的限定(PHP_INT_MAX定义的), 这个 字符串 可被认定是一个 integer, 在其它情况下被认定为一个float。**字符串的开始部分给定了它的值,如果 字符串 以合法的数字( 合法数值由符号,后面跟着一个或多个数字(可能有个小数点),再跟着可选的指数符号如’e’ 或 ‘E’,后面跟着一个或多个数字。)开始,这个数字可直接使用。 否则,值就是0(零)。
四.ord 返回字符的 ASCII 码值
int ord ( string $string ),返回字符串 string 第一个字符的 ASCII 码值,该函数是 chr() 的互补函数。
Example #1 ord() 范例
<?php
s
t
r
=
"
"
;
i
f
(
o
r
d
(
str = " "; if (ord(
str="";if(ord(str) == 10) {
echo "The first character of $str is a line feed. ";
}
?> **
五.chr 返回指定的字符
string chr ( int $ascii ),返回相对应于 ascii 所指定的单个字符。
Example #1 chr() 例子
<?php
$str = "The string ends in escape: ";
$str .= chr(27); / 在 $str 后边增加换码符 /
/ 通常这样更有用 /
$str = sprintf(“The string ends in escape: %c”, 27);
?> ****
六.类型强制转换
PHP 中的类型强制转换和 C 中的非常像:在要转换的变量之前加上用括号括起来的目标类型。
允许的强制转换有:
(int), (integer) - 转换为 整型(integer)
(bool), (boolean) - 转换为 布尔型(boolean)
(当转换为 boolean 时,以下值被认为是 FALSE:
the 布尔值 FALSE 自身
the 整型值 0 (零)
the 浮点型值 0.0 (零)
空 字符串, 以及 字符串 “0”
不包括任何元素的数组
不包括任何成员变量的对象(仅PHP 4.0 适用)
特殊类型 NULL (包括尚未设定的变量)
从没有任何标记(tags)的XML文档生成的SimpleXML 对象
所有其它值都被认为是 TRUE(包括任何资源)。
-1 和其它非零值(不论正负)一样,被认为是 TRUE!)
(float), (double), (real) - 转换为 浮点型(float)
(string) - 转换为 字符串(string)
(binary) - 转换为二进制 字符串(string) (PHP 6)
(array) - 转换为 数组(array)
(object) - 转换为 对象(object)
(unset) - 转换为 NULL (PHP 5)
(binary) 转换会在结果前面加上前缀’b’,PHP 5.2.1 新增。
注意在括号内允许有空格和制表符
Note:可以将变量放置在双引号中的方式来代替将变量转换成 字符串(string)s:
七.整型
一个 integer 是集合 Z = {…, -2, -1, 0, 1, 2, …} 中的一个数。
整型值可以使用十进制,十六进制或八进制表示,前面可以加上可选的符号(- 或者 +)。八进制表示数字前必须加上 0(零),十六进制表示数字前必须加上 0x。
PHP 不支持无符号整数。Integer值的字长可以用常量PHP_INT_SIZE来表示,自 PHP 4.4.0 和 PHP 5.0.5后,最大值可以用常量PHP_INT_MAX来表示。
如果向八进制数传递了一个非法数字(即 8 或 9),则后面其余数字会被忽略。
整数溢出:如果给定的一个数超出了 integer 的范围,将会被解释为 float。同样如果执行的运算结果超出了 integer 范围,也会返回 float。
PHP 中有个 bug,因此当有负数参与时结果并不总是正确。例如当运算 -50000 * $million 时结果是 -429496728。不过当两个运算数都是正数时就没问题。