第七章表达式

运算符

算术运算符

还记得学校的基本数学吗?这就象那一样。

Table 7-1. Arithmetic Operators

example name result
$a + $b $a加上$b
$a - $b $a减去$b
$a * $b $a乘以$b
$a / $b $a除以$b
$a % $b 取模 $a除以$b的余数

如果两个操作数都是整型值(字符串将被转换为整型值),除号("/") 返回整型值(整除的值)。如果任一个操作数是浮点值,则做浮点除法。

字符串运算符

字符串操作符只有 -- 字符串连接符 (".")。

$a = "Hello ";
$b = $a . "World!"; // now $b = "Hello World!"
     

赋值运算符

基本的赋值运算符是 "="。你首先认为这是等于号,错了。它实际上意思是,左边的操作数得到右面表达式的值(也就是, "赋值号")。

一个赋值表达式的值就是所赋给的值。例如, 表达式 $a = 3 的值是3。 这允许你这样做一些复杂的事情:

$a = ($b = 4) + 5; // 现在 $a 等于 9, $b为4 。

除了基本赋值符外,还有"复合运算符"。对于所有的二进制数和字符串,允许你做变量自我复合运算。例如:

$a = 3;
$a += 5; // 把$a 设成 8, 也就是: $a = $a + 5;
$b = "Hello ";
$b .= "There!"; // 把 $b 设成 "Hello There!", 就象 $b = $b . "There!";

位运算符

位运算允许你对指定的数据置位或复位。

Table 7-2. Bitwise Operators

example name 结果
$a & $b $a和$b都被置位则结果被置位
$a | $b $a或$b有一个被置位则结果被置位
~ $a $a没有被置位则结果被置位

逻辑运算符

Table 7-3. Logical Operators

example name 结果
$a and $b $a和$b同时为真则结果为真
$a or $b $a或$b有一个为真则结果为真
$a xor $b 异或 $a和$b不同时为真则结果为真
! $a $a为假则结果为真
$a && $b $a和$b同时为真则结果为真
$a || $b $a或$b有一个为真则结果为真

比较两个变量时,"与"和"或"运算有两种运算符这是以为两种运算符有不同的优先级(见下)

比较运算符

比较运算符,就象名字一样,允许你比较两个值。

Table 7-4. Comparson Operators

example name 结果
$a == $b 等于 $a等于$b结果为真
$a != $b 不等于 $a不等于$b结果为真
$a < $b 小于 $a小于$结果为真
$a > $b 大于 $a大于$b结果为真
$a <= $b 小于等于 $a小于或等于$b结果为真
$a >= $b 大于等于 $a大于或等于$b结果为真

优先级