表达式是 PHP 最重要的基石。在 PHP 中,几乎所写的任何东西都是一个表达式。最基本的表达式形式是常量和变量。函数也是表达式,表达式的值即为它们的返回值。
1.算术运算符
-$a 取负
$a + $b 加法
$a - $b 减法
$a * $b 乘法
$a / $b 除法
$a % $b 取模 $a 除以$b 的余数
$a++或++$a 累加1 注意$a++是取$a未加1之前的值,++$a是取$a加1后的值
$a--或--$a 递减1 注意$a--是取$a未减1之前的值,--$a是取$a减1后的值
2.赋值运算符
$a = 5 赋值运算符=,是将5赋值给$a
$a += 5 是将$a加5再赋值给$a,等同于$a = $a + 5
$a -= 5 等同于 $a = $a - 5
$a *= 5 等同于 $a = $a * 5
$a %= 5 等同于 $a = $a % 5
$a .="H" 等同于 $a = $a."H"
3.位运算符
$a & $b And(按位与) 将把 $a 和 $b 中都为 1 的位设为 1。
$a | $b Or(按位或) 将把 $a 和 $b 中任何一个为 1 的位设为 1。
$a ^ $b Xor(按位异或) 将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1。
~ $a Not(按位取反) 将 $a 中为 0 的位设为 1,反之亦然。
$a << $b Shift left(左移) 将 $a 中的位向左移动 $b 次(每一次移动都表示"乘以 2")。
$a >> $b Shift right(右移) 将 $a 中的位向右移动 $b 次(每一次移动都表示"除以 2")。
4.比较运算符: > 大于 <小于 >=大于等于 <=小于等于 ==等于 !==非全等于(数值不等于或类型不等于) <>或!=不等于 ===全等于(数值和类型都一致)
5.错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
Note: @ 运算符只对表达式有效。对新手来说一个简单的规则就是:如果能从某处得到值,就能在它前面加上 @ 运算符。例如,可以把它放在变量,函数和 include 调用,常量,等等之前。不能把它放在函数或类的定义之前,也不能用于条件结构例如 if 和 foreach 等。
6.执行运算符:反引号(``)。注意不是单引号!PHP 将尝试将反引号中的内容作为外壳命令来执行,并将其输出信息返回(即,可以赋给一个变量而不是简单地丢弃到标准输出)。使用反引号运算符"`"的效果与函数 shell_exec() 相同。
7.逻辑运算符
and或&& 逻辑与,当两个值都为真时,返回真
or或|| 逻辑或,当两个值有一个为真时,返回真
not或! 逻辑非,当值为真时返回假,当值为假时返回真
xor 逻辑异或,当两个值一个为真一个为假时,返回真
8.字符串运算符:两个字符串运算符,第一个是连接运算符.(点),第二个是连接赋值运算符.=
9.数组运算符:
+ 联合(两个数组联合一起) ,将右边的数组项合并到左边的数组,若键名相同,以左边为准。
+ 和 array_merge的区别在遇到相等key时,用+时,左边数组会覆盖掉右边数组的值,array_merge相反,后面的数组覆盖掉前面的。
$arr1 = array("a"=>123,"b"=>456,"c"=>789); $arr2 = array("d"=>741,"a"=>852,"b"=>963); print_r($arr1+$arr2); //结果:Array ( [a] => 123 [b] => 456 [c] => 789 [d] => 741 )
== 相等(两个数组键值对相同) === 全等(两个数组键值对相同、顺序和类型也相同) !=或<> 不等 !== 不全等
10.类型运算符:instanceof 检测一个给定的对象是否来自一个指定的对象类中。
<?php class myclass{ } class yourclass{ } $a = new myclass(); var_dump($a instanceof myclass); //结果为TRUE var_dump($a instanceof yourclass); //结果为FALSE ?>
11.其他运算符
11.1 ?: 三元运算符,简单的逻辑判断
<?php $a = 1; $b = 2; $a < $b ? $c = 1 : $c = 0; echo $c; //结果为1,判断为真 ?>
11.2 => 数组下标指定符号,通过它指定键值对
11.3 -> 对象成员访问符号,访问对象的成员属性或成员方法