PHP学习笔记 运算符
算数运算符
例子 | 名称 | 结果 |
---|---|---|
-$a | 取反 | a的相反数 |
$a + $b | 加法 | a 和a和b 的和 |
$a - $b | 减法 | a 和a和b 的差 |
$a * $b | 乘法 | a 和a和b 的积 |
$a / $b | 除法 | a 和a和b 的商 |
$a % $b | 取余 | a 除以a除以b 的余数 |
$a ** $b | 乘方 | a 的a的b 次方 |
++$a | 前加 | a的值加1,然后返回a |
$a ++ | 后加 | 返回a,然后将a的值加1。 |
–$a | 前减 | a的值减1,然后返回a. |
$a– | 后减 | 返回a,然后将a的值减1 |
字符串运算符
有两个字符串运算符。
第一个是连接运算符.,它返回其左右参数连接后的字符串
第二个是连接赋值运算符.=,它将右边参数附加到左边的参数后。
<?php
$a = "Hello ";
$b = $a . "PHP!"; // now $b contains "Hello World!"
echo $b;
$a = "Hello ";
$a .= "World!"; // now $a contains "Hello World!"
echo $a;
?>
输出结果:
Hello PHP!Hello World!
赋值运算符
左边的操作数必须是变量,右边可以是一个表达式,也可以是一个值,一个变量等等。
作用:将右边表达式的值赋給左边变量
赋值+= ,比如a+=b,就是a=a+b。
赋值-= ,比如a-=b,就是a=a-b
赋值*= ,比如a*=b,就是a=a*b
赋值/= ,比如a/=b,就是a=a/b
赋值%= ,比如a%=b,就是a=a%b
比较运算符
比较运算符也称关系运算符,又称条件运算符,用于对运算符两边的操作数进行比较
比较的结果只能是布尔值。对操作数(按照比较运算符的要求规则)进行比较。如果比较出的结果满足比较运算符的要求那么结果就是true(真,成立,满足),否则就是false(假,不成立,不满足)
项目 | 含义 | 结果 |
---|---|---|
$a == $b | 等于 | 如果类型转换后 a 等于a等于b,返回 true。 |
$a === $b | 全等 | 如果 a 等于a等于b,并且它们的类型也相同,返回true。 |
$a != $b | 不等 | 如果类型转换后 a 不等于a不等于b,返回 true。 |
$a <> $b | 不等 | 如果类型转换后 a 不等于a不等于b,返回true。 |
$a !== $b | 不全等 | 如果 a 和a和b 的值或类型不同,返回 true。 |
$a < $b | 小于 | 如果 a 小于a小于b,返回 true。 |
$a > $b | 大于 | 如果 a 大于a大于b,返回 true。 |
$a <= $b | 小于等于 | 如果 a 小于或者等于a小于或者等于b,返回true。 |
$a >= $b | 大于等于 | 如果 a 大于或者等于a大于或者等于b,返回 true。 |
例:
<?php
$a=11;
$b='11' ;
//var_dump($a==$b) ;//true
var_dump($a===$b) ;//false
?>
逻辑运算符
对表达式进行逻辑运算,运算出的结果是布尔类型的值(true, false)
要求:参与逻辑运算的表达式的值是布尔类型的值,如果不是布尔类型的值会被自动转换成布尔类型的值,然后再参与运算!
表达式 | 含义 | 结果 |
---|---|---|
$a and $b | and(逻辑与) | 当两边操作数都为true时,返回true,否则返回false |
$a or $b | or (逻辑或) | 当两边操作都为false时,返回false,否则返回true |
$a xor $b | xor (逻辑异或) | 当两边操作数只有一个为true时,返回true,否则返回false |
!$a | not (逻辑非) | 当操作为true时返回false,否则返回true |
$a && $b | and(逻辑与) | 当两边操作数都为true时,返回true,否则返回false |
$a II $b | or (逻辑或) | 当两边操作都为false时,返回false,否则返回true |
位运算符
-
& 按位与
只有参与运算的两位都为1时,运算结果才为1,否则为0 -
| 按位或
只有参与运算的两位都为0时,运算结果才为0,否则为1 -
^ 按位异或
只有参与运算的两位不同,运算结果才为1,否则为0
4.~ 按位非
将二进制表示的操作数中的1变成0,0变成1
5.<< 左移
将左边的操作数在内存中的二进制数据左移右边操作数指定的位数,右边移空的部分补上0
6. >>右移
将左边的操作数在内存中的二进制数据右移右边操作数指定的位数,左边移空的部分补上0
其他运算符
运算符 | 解释 |
---|---|
?: | 三元运算符,可以提供简单的逻辑判断 |
`` | 反引号 是执行运算符,php将尝试将反引号中的内容作为外壳命令来执行,并将其输入信息返回 |
@ | 错误控制运算符,当将其放置在一个php表达式之前,该表达式可能产生的任何错误信息都将被忽略掉 |
=> | 数组下标指定符号,通过此符号指定数组的键与值 |
-> | 对象成员访问符号,访问对象中的成员属性或成员方法 |
instanceof | 类型运算符,用来测定一个给定的对象是否来自指定的对象类 |
- ?:
三元运算
格式: 表达式1 ?表达式2 :表达式3;
如果表达式1的值为true,那么就执行表达式2,否则那么就执行表达式3
<?php
$a=false ? 10 : 20;
echo $a;
?>
运行结果:
20
- ``
反引号 是执行运算符,php将尝试将反引号中的内容作为外壳命令来执行,并将其输入信息返回
<?php
$a= " ipconfig';
$b=' ifconfig' ;
var_dump($b) ;
?>
运行结果:
string(9) " ifconfig"
- @
错误控制运算符,屏蔽表达式可能发生错误!
echo @$a;
-
=>
数组下标指定符号,通过此符号指定数组的键与值。=>符号来分隔键和值,左侧表示键,右侧表示值。 -
->
对象成员访问符号,访问对象中的成员属性或成员方法。->是对象执行方法或取得属性用的。 -
instanceof
类型运算符,用来测定一个给定的对象是否来自指定的对象类
运算符的优先级
优先级归纳:.
- [无]递增递减
- [右]逻辑非!
- [左]乘,除,取余
- [左]加,减,字符串连接符
- [无]包含大于号或者小于号的比较运算符
- [无]不包含大于号或者小于号的比较运算符
- [左]逻辑与&&
- [左]逻辑或||
- [左]? :
- [右]赋值运算符
- [在] 逻辑异或xor
圆括号的作用:
用圆括号可以将表达式里面的某一块看成一个整体!使用括号可以增强代码的可读性。
注意
PHP中规定:
使用echo输出布尔类型值的时候
echo true;它在页面中会输出1
echo false;它会在页面中什么都不输出
所以说我们在测试的过程中如果需要输出布尔类型值的时候我们最好使用var_dump()来输出更明了