本节我们给出PHP中一些基本的运算符,对于一些特殊的运算符,如布尔运算、字符串操作等,会在相关章节中介绍。
算术运算符
与大多数编程语言一样,PHP中的算术运算符包括以下五种:
- +,加法运算。
- -,减法运算。
- *,乘法运算。
- /,除法运算。
- %,取模运算,更直观的名称是取余数运算,此运算符只使用于整数,必要时会自动转换数据类型。
比较运算符
比较运算符的结果为布尔类型,一般用于条件判断,PHP中的比较运算符包括:
- ==,等于,这只是形式上的等于,如”99″ == 99会返回true。
- !=,不等于。
- <,小于。
- >,大于。
- <=,小于等于。
- >=,大于等于。
- ===,全等,数据类型和值都相等才会返回true,如”99″===99返回false。如果是两个对象进行全等比较,则必须是同一实例才返回true,否则返回false(即使两个对象是相同类型)。
- !==,不全等。
位运算符
位运算应用于整数,如果运算数不是整数类型,则会自动转换。PHP中的位运算符包括:
- &,按位与运算。
- |,按位或运算。
- ~,按位非运算。
- ^,按位异或运算。
- <<,左移运算。
- >>,右移运算。
位运算是对整数的二进制编码进行运算,在一般的应用开发中并不经常使用,如果有需要,你可以在php.net网站参考完整的说明文档。
赋值运算符
除了标准的赋值运算符(=),PHP也支持一些常用的组合赋值运算符,如:+=、-=、*=、/=、&=、|=、^=、<<=、>>=。如:
$i = 1;
$i += 2; // 相当于 $i = $i + 2
echo $i; // 显示3
递增与递减运算符
我们首先讨论一下递增运算,包括前递增与后递增,先看下面的代码。
$i = 1;
$i++;
$j = 1;
++$j;
echo $i; // 显示2
echo $j; // 显示2
我们可以看到,代码中,无论是前递增运算还是后递增运算,运算后的变量都会加1,那么,它们的区别是什么呢?
答案是,前递增运算和后递增运算时,其表达式的值不同,区别在于:
- 前递增运算,表达式是变量加1的值,即和计算后的变量值相同。我们可以理解为先运算后使用变量值。
- 后递增运算,表达式是变量的原值。相应的,可以理解为先使用变量值,再进行加1运算。
如下面的代码。
$i = 1;
$j = 1;
echo ++$i; // 显示2
echo $j++; // 显示1
在使用递增运算时,如果是只使用计算后的变量值,那么,前递增运算和后递增运算的结果是一样的;但是,需要使用递增运算表达式的值时,就应该非常小心地区分它们。
递减运算同样分别前递减运算和后递减运算,只是执行的是变量减1的操作,而其它特点则与递增运算相似。
?:运算符
?:是一个三元运算符,它包括三个运算数,如:
<表达式1> ? <表达式2> : <表达式3>
其中:当<表达式1>结果为true时,返回<表达式2>的内容,否则返回<表达式3>的内容。如下面的代码:
$num = 2;
echo $num%2==0 ? '偶数' : '奇数'; // 显示 偶数