蓝盟诗人[LUC]蓝客联盟

PHP运算符

2010-10-23 14:09 作者: 来源: 本站 浏览: 1,738 views 我要评论 字号:

章 10. 运算符

目录
运算符优先级
算术运算符
赋值运算符
位运算符
比较运算符
错误控制运算符
执行运算符
加一/减一运算符
逻辑运算符
字符串运算符
数组运算符

运算符优先级

运算符优先级指定了两个表达式绑定得有多“紧密”。例如,表达式 1 + 5 * 3 的结果是 16 而不是 18 是因为乘号(“*”)的优先级比加号(“+”)高。必要时可以用括号来强制改变优先级。例如:(1 + 5) * 3 的值为 18

下表从低到高列出了运算符的优先级。

表格 10-1. 运算符优先级

结合方向运算符
,
or
xor
and
print
= += -= *= /= .= %= &= |= ^= ~= <<= >>=
? :
||
&&
|
^
&
== != === !==
< <= > >=
<< >>
+ - .
* / %
! ~ ++ -- (int) (float) (string) (array) (object) @
[
new

注: 尽管 ! 比 = 的优先级高,PHP 仍旧允许类似如下的表达式:if (!$a = foo()),在此例中 foo() 的输出被赋给了 $a

表格 10-2. 算术运算符

例子名称结果
$a + $b加法$a 和 $b 的和。
$a - $b减法$a 和 $b 的差。
$a * $b乘法$a 和 $b 的积。
$a / $b除法$a 除以 $b 的商。
$a % $b取模$a 除以 $b 的余数。

除号(“/”)总是返回浮点数,即使两个运算数是整数(或由字符串转换成的整数)也是这样。

表格 10-6. 逻辑运算符

例子名称结果
$a and $bAnd(逻辑与)TRUE,如果 $a 与 $b 都为TRUE
$a or $bOr(逻辑或)TRUE,如果 $a 或 $b 任一为TRUE
$a xor $bXor(逻辑异或)TRUE,如果 $a 或 $b 任一为TRUE,但不同时是。
! $aNot(逻辑非)TRUE,如果 $a 不为 TRUE
$a && $bAnd(逻辑与)TRUE,如果 $a 与 $b 都为TRUE
$a || $bOr(逻辑或)TRUE,如果 $a 或 $b 任一为TRUE

“与”和“或”有两种不同形式运算符的原因是它们操作的优先级不同。(见运算符优先级。)


PHP字符串运算符


有两个字符串运算符。第一个是连接运算符(“.”),它返回其左右参数连接后的字符串。第二个是连接赋值运算符(“.=”),它将右边参数附加到左边的参数后。更多信息见赋值运算符。

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

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

请参阅手册中“字符串类型”和“字符串函数”的有关章节。

PHP 数组运算符

PHP 仅有的一个数组运算符是 + 运算符。它把右边的数组附加到左边的数组后,但是重复的键值不会被覆盖。

$a = array("a" => "apple", "b" => "banana");
$b = array("a" =>"pear", "b" => "strawberry", "c" => "cherry");

$c = $a + $b;

var_dump($c);

执行后,此脚本会显示:

array(3) {
["a"]=>
string(5) "apple"
["b"]=>
string(6) "banana"
["c"]=>
string(6) "cherry"
}

请参阅手册中“数组类型”和“数组函数”的有关章节。

打印
分享到:
复制链接

发表评论

*

* (保密)

Ctrl+Enter 快捷回复

会员登录关闭

记住我 忘记密码

注册会员关闭

小提示: 您的密码会通过填写的"电子邮箱"发送给您.