运算符(operator):是一种将数据进行运算的特殊符号,在PHP中一共有十几种运算符之多,常见的它包含:
算术运算符
赋值运算符
比较运算符
逻辑运算符
连接运算符
错误控制运算符
三目运算符
自增自减运算符
位运算符
算术运算符
算术运算:基本算术操作
+:执行数据累加
-:数据相减
*:键盘上没有乘法符号,使用*代替,两个数相乘
/:正斜杠代替,表示两个数相除
%:取余运算,两个数(整数)相除,保留余数
赋值运算符
赋值运算:符号是"=",表示将右边的结果(可以是变量、数据、常量和其他计算出来的结果),保存到内存的某个位置,然后将位置的内存地址赋值到左侧的变量(或常量)。
类似的还有以下常见赋值运算符:
+=:(加赋值)左边的结果与右边结果相加,然后赋值给左边
-=: (减赋值)左边减去右边的结果,然后赋值给左边
*=:(乘赋值)左边乘以右边的结果,然后赋值给左边
/=:(除赋值)左边除以右边的结果,然后赋值给左边
%=:(求余赋值)左边与右边取余的结果,然后赋值给左边
如:$a += $b;等价于 $a = $a + $b;以此类推:
注意: 如果进行除非或者取余运算,那么要考虑右边表达式的结果是否为0
<?php
$a = 10; //编译结果:11
$b = 5; // 5
$a += $b;
$a -= $b - 1; //$a = 15;$b = 5;$a = $a - ($b - 1);
echo $a."\n".$b;
?>
比较运算符(又称关系运算符)
比较运算:比较两个数据的大小,或者两个内容是否相同(满足返回true,不满足返回false)
>:左边大于右边
>=:左边大于等于右边
<:左边小于右边
<=:左边小于等于右边
==:左边的与右边的形同(大小相同)
!=:左边的与右边的不同(大小不同)
===:全等于,左边与右边相同:大小以及数据的类型都要相同
!==:不全等于,只有大小或者类型不同
<?php
$a = '123'; //编译结果:bool(true)
$b = 123; // bool(false)
var_dump($a == $b);
var_dump($a === $b);
?>
逻辑运算符
逻辑运算:针对不同的结果进行匹配,满足条件返回true,不满足返货false
&&:逻辑与,左边的条件与右边的条件同时成立(两边结果都为true)
||:逻辑或,左边的条件或者右边的条件只要有一个满足即可
!:对已有的条件进行取反,本身为true,取反结果就是false
<?php
$a = 'weekend'; //编译结果:bool(false)
$b = 'goods'; // bool(true)
var_dump($a == 'weekend' && $b == 'good'); // bool(false)
var_dump($a == 'weekend' || $b == 'good'); // bool(true)
var_dump($b == 'good');
var_dump(!($b == 'good'));
?>
逻辑与和逻辑或又称之为短路运算:如果第一个表达式结果已经满足条件了,那么就不会运行逻辑运算符后面的表达式:在书写代码的时候,尽量将出现概率最高的(能够直接判断出结果)的表达式放到第一位。
连接运算符(又称字符串连接运算符)
连接运算:是php中将多个字符串拼接的一种符号
.:将两个字符串连接到一起
.=:复合运算,将左边的内容与右边的内容连接起来,然后重新赋值给左边的变量
<?php
$a = 'hello'; //编译结果:hello123
$b = 123; // hello123
echo $a.$b;
$a .= $b; //$a = $a.$b;
echo "\n".$a;
?>
错误控制运算符
在php中有一些错误可以提前预知,但是这些错误可能无法避免,但是又不希望报错给用户看,可以错误控制运算符处理
@:在可能出错的表达式前面使用@符号即可
<?php
$a = 10;
$b = 0;
echo $a % $b; //代码错误!
echo @($a / $b); //代码正确!
?>
错误控制运算符通常在生产环境(上线)会用到,在开发的时候不会用:系统本身最好没有任何错误
三目运算符(又称条件运算符)
三目运算:有三个表达式参与的运算(简单的分支结构缩写)
语法格式:
表达式1?表达式2:表达式3
运算:如果表达式1成立,那么执行表达式2,否则执行表达式3;
注意:如果表达式本身比较复杂,建议使用括号包起来
<?php
$a = 10; //编译结果: 0
$b = $a > 10 ? 100 : 0;
echo $b;
?>
三目运算符可以进行复合三木运算:三目运算中的表达式2和3都是可以是另外一个三目运算
表达式1 ? (表达式2 ? 表达式4:表达式5):(表达式3 ? 表达式5:表达式6))
自增自减运算符(主要用于循环语句中)
++:在原来的值上+1
--:在原来的值上-1
在php中自增自减运算符可以放到变量前或者后:
$a = 1;
$b = $a++; //$a++会导致$a = $a + 1;$a = 2;而$b = 1;(先赋值后运算)
$c = ++$a; //++$a会导致$a = $a + 1;$a = 2;而$c = 2;(先运算后赋值)
<?php //编译结果:$a的值为:2$b的值为:2
$a = $b = 1; // $a++的值为:2
$a++; // ++$b的值为:3
++$b; // 现在$a的值为:3
echo "\$a的值为:$a","\$b的值为:$b"; // 现在$b的值为:3
echo "\n"."\$a++的值为:".$a++."\n"."++\$b的值为:".++$b;
echo "\n"."现在\$a的值为:$a"."\n"."现在\$b的值为:$b";
?>