Php运算符
说白了就是一些符号,这些符号可以将变量或者数据执行某种运算!
1.算术运算符
1) +
$a=1;
$b=2;
$c=$a+$b;
echo $c;
2) -
//第一个意思: 减号
$a=10;
$b=2;
$c=$a-$b;
echo $c;
//第二个意思: 取反
$a=1;
$b=-$a;
echo $b;//-1
echo '<br />';
echo $a;//1
//注意:取反并不会影响到被取反变量本身的值!
3)* 乘号
$a=4;
$b=2;
$c=$a*$b;
echo $c;
4)/ 除号
$a=10;
$b=2;
$c=$a/$b;
echo $c;
5)% 取模
$a=12;
$b=2;
echo $a%$b;
6)++ 自增
前++
当在一个语句里面需要使用到被自增的变量的值的时候,前++会先执行自增,然后再返回自增之后的值!
$a=10;
echo ++$a;//11
后++
当在一个语句里面需要使用到被自增的变量的值的时候,后++会先返回变量的值然后再去执行自增
$a=10;
//++$a;//$a=$a+1;
//$a++;//$a=$a+1;
echo $a++;//echo $a;$a=$a+1;
echo '<br />';
echo $a;//11
注意:
$a=10;
++$a;//这种情况不需要用到自增变量值的时候,和后++无区别
echo $a;
7)-- 自减
前--
$a=10;
//$a--;//$a=$a-1; 和--$a没区别;
echo --$a;//$a=$a-1;echo $a;
echo '<br />';
echo $a;
后--
$a=10;
//$a--;//$a=$a-1; 和--$a没区别;
echo $a--;//echo $a;$a=$a-1;
echo '<br />';
echo $a;
注意:自增或者自减是对变量而言的!
2.字符串运算符
. 连接运算符
$a='中国';
$b='女排';
echo $a.$b;
3.赋值运算符
注意:
赋值运算符整个语句是有值的,所以整个语句就是一个表达式,所以我们也可以这么写:
$a=$b=2;相当于$a=($b=2);也相当于$a=2;$b=2;
=
把右边的值赋给左边的变量
$a=1;
二元运算符
表达式是 PHP 最重要的基石。在 PHP 中,几乎所写的任何东西都是一个表达式。简单但却最精确的定义一个表达式的方式就是“任何有值的东西”。
+=
$a=1;
$b=2;
$a+=$b;//$a=$a+$b;
echo $a;
-=
$a=2;
$b=1;
$a-=$b;//$a=$a-$b
echo $a;
4.比较运算符
概念:
对操作数(按照比较运算符的要求,规则)进行比较
如果比较出的结果满足比较运算符的要求那么结果就是true(真,成立,满足),否则就是false(假,不成立,不满足)
PHP中规定:
使用echo输出布尔类型值的时候
echo true;它在页面中会输出1 echo false;它会在页面中什么都不输出
规定的,记住就好!所以说我们在测试的过程中如果需要输出布尔类型值的时候我们最好使用var_dump()来输出更明了的结果!
1)== 值是否相等
如果值相等则就是 true(真,成立)
如果值不相等那么就是false(假,不成立)
$a=1;
$b=1;
var_dump($a==$b);//true
2)=== 全等(值要相等,类型也要相等)
如果两边操作数的值 全等那么就是true否则就是false
$a=11;
$b='11';
//var_dump($a==$b);//true
var_dump($a===$b);//false
3)!= 值是否不相等
如果两边操作数的值不相等那么就是true,否则就是false
$a=1;
$b=11;
var_dump($a!=$b);//true
4)<> 同上
5)!== 不全等
如果两边的操作数不全等那么就是true,否则就是false
/*
$a=1111;
$b=2;
var_dump($a!=$b);//true
var_dump($a!==$b);//true
*/
$a=11;
$b='11';
var_dump($a!=$b);//false
var_dump($a!==$b);//true,$a不全等于$b
6) < 小于
比较两边操作数的值,前面的是否小与后面的
$a=1;
$b=1;
var_dump($a<$b);//false,$a小与$b这句话正确还是错误
7) > 大于
$a=10;
$b=1;
var_dump($a>$b);
8) <= 小于等于
$a=1;
$b=1;
var_dump($a<=$b);//$a小与等于$b就是true,否则就是false
9) >= 大于等于
$a=2;
var_dump($a>=$b);//true
5.逻辑运算符
概念:
对表达式进行逻辑运算,运算出的结果是布尔类型的值(true,false)
要求:
参与逻辑运算的表达式的值是布尔类型的值,如果不是布尔类型的值会被PHP自动转换成布尔类型的值,然后再参与运算!
1)逻辑与
and 或者 &&
运算规则:
左右两边的表达式的值都为true的时候,运算的结果就是true
否则只要其中任意一个为false,运算的结果就是false;
现实举例:
true 及格 false 不及格
左右两边的表达式就是我们要考试的科目;
要求:当语文和数学都及格的时候那么,最终的结果才能够通过(true),否则就是不通过(false)
$a=false;//语文
$b=true;//数学
var_dump($a && $b);
中间隐含一个问题:“短路”,运算符的优先级的问题!
我们的程序语言的设计者认为:
只要有逻辑运算符 (逻辑与,逻辑或)那么运算结果就是就是一个true或者false
那个这个整个运行的过程就不重要了!
当然短路问题并不会遇到太多,就算遇到也不会有什么影响!
2)逻辑或
or 或者 ||
运算规则:
左右两边的表达式的值有一个为true,运算的结果就是true
,只有当两边的值都是false的时候,结果才会是false
$a=false;//语文
$b=true;//数学
var_dump($a || $b);
现实举例:
要求:当语文和数学有一门及格那么最终的结果就是通过true
中间隐含一个问题:“短路”,运算符的优先级的问题!
我们的程序语言的设计者认为:
只要有逻辑运算符 (逻辑与,逻辑或)那么运算结果就是就是一个true或者false
那个这个整个运行的过程就不重要了!
当然短路问题并不会遇到太多,就算遇到也不会有什么影响!
2)逻辑或
xor
运算规则:
左右两边的表达式的值不一样的时候结果就是true,如果一样那么运算的结果就是false
$a=false;
$b=false;
var_dump($a xor $b);
4)逻辑非
!
运算规则:
将原来表达式的值否定掉,原来是true,那么结果就是false
原来是false,那么结果就是true
6.其他运算符
1)? :
三元运算
格式:
//表达式1 ? 表达式2 : 表达式3;
//如果表达式1的值为true,那么就执行表达式2,否则那么就执行表达式3
$a=false ? 10 : 20;
echo $a;//20
2)``
可以把系统的命令放在里面执行!
涉及到跨平台:
$a=`ipconfig`;
$b=`ifconfig`;
var_dump($b);
3)@
屏蔽表达式可能发生错误!
echo @$a;
当然,实际在哪些地方应用,我们用到大家就知道了!
4)=>
5)->
6)instanceof
7.运算符的优先级
优先级的概念:
谁的优先级别高就先算谁!
结合方向:
规定了从那个方向开始算的问题!
优先级这个概念只要知道一些基本的常用的就可以了,因为我们在实际开发中几乎没有那么需要写非常复杂的表达式,
让我们去考虑先算谁,后算谁的问题!
优先级归纳:
- ◆ 1)[无]递增递减
- ◆ 2)[右]逻辑非!
- ◆ 3)[左]乘,除,取余
- ◆ 4)[左]加,减,字符串连接符
- ◆ 5)[无]包含大于号或者小于号的比较运算符
- ◆ 6)[无]不包含大于号或者小于号的比较运算符
- ◆ 7)[左]逻辑与&&
- ◆ 8)[左]逻辑或||
- ◆ 9)[左]? :
- ◆ 10)[右]赋值运算符
- ◆ 11)[左 ]逻辑异或xor
圆括号的作用:
1、用圆括号可以将表达式里面的某一块看成一个整体!
2、*使用括号可以增强代码的可读性。
3、哪怕有的地方不需要加括号你也可以加上以增加可读性!