PHP运算符
用来对变量、常量或数据进行计算的符号,它对一个值或者一组值执行一个指定的操作。 主要包括:
- 算数运算符
- 字符串运算符
- 赋值运算符
- 位运算符
- 逻辑运算符
- 比较运算符
- 递增递减运算符
- 条件运算符
算术运算符
处理四则运算的符号,在数字的处理中运用的最多。
名称 | 操作符 | 示例 |
---|
加法运算 | + | $a + $b | 减法运算 | — | $a - $b | 乘法运算 | * | $a * $b | 除法运算 | / | $a / $b | 取余数运算(模运算) | % | $a % $b |
取余数运算的时候,如果被除数$a是负数的话,则结果也是一个负数。
字符串运算符
只有一个,就是英文状态下的句号 . ,它的作用是将两个字符串连接起来,结合成一个新的字符串。
这里要注意的是,在PHP中的+ 只用作赋值运算符,而不能用作字符串运算符。
$n = “3.1415abc”;
$m = 1;
echo $n.$m;
echo $n + $m;
由上面的代码可以知道,当两个变量之间使用字符串运算符 . 的时候会返回它们两个结合后的新的字符串,但是如果使用 + 运算符,PHP会认为这是一次运算,会自动将字符串类型转换成整型,如果是字母则输出为啥啊,如果是数字开头则截取字符串头部的数字,然后进行运算,输出结果。
赋值运算符
赋值运算符就是把基本赋值运算符 = 右边的值赋给左边的变量或者常量。
常见的赋值运算符
操作 | 符号 | 示例 |
---|
赋值 | = | $a = 3 | 加 | += | $a += 3 | 减 | -= | $b -= 2 | 乘 | *= | $c *= 4 | 除 | /= | $d /= 5 | 连接字符 | .= | $a .= $b | 取余数 | %= | $a %= 4 |
表中的+=,-=,%= 等等操作符可以展开来,以+= 为例: $a += 2 等价于 $a = $a + 2
递增递减运算符
递增递减运算符由有两种使用方法:
- 前置:先将变量做+1或-1运算后再将值赋值给原变量。
- 后置:先返回当前变量的当前值,然后变量的当前值再做+1或者-1的运算。
$a = 6;
$b = 9;
echo "$a++ =".$a++;
echo "$a = ".$a;
echo "--$b =". --$b;
echo "$b = ".$b;
位运算符
位逻辑运算符:对二进制位从低位到高位对齐后进行运算。
符号 | 作用 | 示例 |
---|
& | 按位与 | $m & $n | | | 按位或 | $m | $n | ^ | 按位异或 | $m ^ $n | ~ | 按位取反 | $m ~ $n | << | 按位左移 | $m << $n | >> | 按位右移 | $m >> $n |
$m = 8;
$n = 12;
echo $m & $n;
运算过程: 十进制数8转换成二进制数为:1000 十进制数12转换后为:1100 从右到左按位进行布尔运算,0为假,1为真。 按位与,全真为真,所以1000和1100按位进行与运算后,得到的二进制数是1000,转换成十进制数输出也就是8。
逻辑运算符
运算符 | 示例 | 结果为真 |
---|
&&或者and(逻辑与) | $a and $b | $a 和 $b都为真 | ||或者or(逻辑或) | $a or $b | $a或者$b其中一个为真 | xor(逻辑异或) | $a xor $b | 当$a和$b一真一假的时候 | !(逻辑非) | !$a | 当$a为假时 |
同一逻辑结构的两个运算符号(例如and和&&)之间有着不同的优先级。
&&优先级大于and,逻辑或同理。
$a = true;
$b = true;
$c = false;
if($a or $b and $c){
echo "true";
}else{
echo "false";
}
if($a || $b and $c){
echo "true";
}else{
echo "false";
}
上面的代码可以看出,同样的逻辑判断输出的结果却相反,优先级就是造成这个结果的原因。
首先在逻辑运算符中,逻辑与的优先级高于逻辑或,因此在第一个if语句中,先判断 $b and $c 为 false ,然后判断 $a or false ,结果为 true 。 第二个if语句中,|| 的优先级高于and ,所以先判断 $a || $b ,结果为 true ,然后再判断 true and $c ,结果为 false 。
所以,在使用逻辑运算符的时候,一定一定要千万注意优先级。
PHP表达式
表达式是构成PHP程序语言的基本元素。最基本的表达式形式就是变量和常量。 $m = 20;//表示将20赋值给变量$m
在PHP代码中,使用分号; 来区分表达式,表达式也可以包裹在括号里。
|