运算符
运算符是可以通过给出的一或多个值(用编程行话来说,表达式)来产生另一个值(因而整个结构成为一个表达式)的东西。
运算符可按照其能接受几个值来分组。一元运算符只能接受一个值,例如 !(逻辑取反运算符)或 ++(递增运算符)。二元运算符可接受两个值,例如熟悉的算术运算符 +(加)和 -(减),大多数 PHP 运算符都是这种。最后是唯一的三元运算符 ? :,可接受三个值;通常就简单称之为“三元运算符”。
算数运算符
算数运算符用来进行常规数学计算,这些运算符都有:
例子 | 名称 | 结果 |
---|---|---|
-$a | 取反 | $a 的负值。 |
$a + $b | 加法 | $a 和 $b 的和。 |
$a - $b | 减法 | $a 和 $b 的差。 |
$a * $b | 乘法 | $a 和 $b 的积。 |
$a / $b | 除法 | $a 除以 $b 的商。 |
$a % $b | 取模 | $a 除以 $b 的余数。 |
赋值运算符
基本的赋值运算符是“=”。它实际上意味着把右边表达式的值赋给左边的运算数。赋值运算表达式的值也就是所赋的值。赋值运算将原变量的值拷贝到新变量中(传值赋值),所以改变其中一个并不影响另一个。PHP 支持引用赋值,使用“$var = &$othervar;”语法。引用赋值意味着两个变量指向了同一个数据,没有拷贝任何东西。
<?php
$a = 3;
$b = &$a; // $b 是 $a 的引用
print "$a\n"; // 输出 3
print "$b\n"; // 输出 3
$a = 4; // 修改 $a
print "$a\n"; // 输出 4
print "$b\n"; // 也输出 4,因为 $b 是 $a 的引用,因此也被改变
?>
位运算符
位运算符允许对整型数中指定的位进行求值和操作。由于位运算不是特别常用,故在此不详细介绍。
比较运算符
比较运算符,允许对两个值进行比较。
例子 | 名称 | 结果 |
---|---|---|
$a == $b | 等于 | TRUE,如果类型转换后 $a 等于 $b。 |
$a === $b | 全等 | TRUE,如果 $a 等于 $b,并且它们的类型也相同。 |
$a != $b | 不等 | TRUE,如果类型转换后 $a 不等于 $b。 |
$a <> $b | 不等 | TRUE,如果类型转换后 $a 不等于 $b。 |
$a !== $b | 不全等 | TRUE,如果 $a 不等于 $b,或者它们的类型不同。 |
$a < $b | 小与 | TRUE,如果 $a 严格小于 $b。 |
$a > $b | 大于 | TRUE,如果 $a 严格大于 $b。 |
$a <= $b | 小于等于 | TRUE,如果 $a 小于或者等于 $b。 |
$a >= $b | 大于等于 | TRUE,如果 $a 大于或者等于 $b。 |
错误控制运算符
PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
执行运算符
PHP 支持一个执行运算符:反引号(`)。注意这不是单引号!PHP 将尝试将反引号中的内容作为外壳命令来执行,并将其输出信息返回。例如:
<?php
$output = `dir`;
echo "<pre>$output</pre>";
?>
递增递减运算符
PHP 支持 C 风格的前/后递增与递减运算符。详见表:
例子 | 名称 | 效果 |
---|---|---|
++$a | 前加 | $a 的值加一,然后返回 $a。 |
$a++ | 后加 | 返回 $a,然后将 $a 的值加一。 |
--$a | 前减 | $a 的值减一, 然后返回 $a。 |
$a-- | 后减 | 返回 $a,然后将 $a 的值减一。 |
逻辑运算符
逻辑运算符用来进行逻辑运算,表达式的值最终为布尔值。
例子 | 名称 | 结果 |
---|---|---|
$a and $b | 逻辑与 | TRUE,如果 $a 和 $b 都为 TRUE。 |
$a or $b | 逻辑或 | TRUE,如果 $a 或 $b 任一为 TRUE。 |
$a xor $b | 逻辑异或 | TRUE,如果 $a 或 $b 任一为 TRUE,但不同时是。 |
! $a | 逻辑非 | TRUE,如果 $a 不为 TRUE。 |
$a && $b | 逻辑与 | TRUE,如果 $a 和 $b 都为 TRUE。 |
$a || $b | 逻辑或 | TRUE,如果 $a 或 $b 任一为 TRUE。 |
字符串运算符
有两个字符串(string)运算符。第一个是连接运算符(“.”),它返回其左右参数连接后的字符串。第二个是连接赋值运算符(“.=”),它将右边参数附加到左边的参数之后。
类型运算符
instanceof 用于确定一个 PHP 变量是否属于某一类 class 的实例。