运算符(operator ):
一种将数据进行运算的特殊符号,在php中共有十种运算符。
赋值运算符 =
表示将右边的结果(可以是变量、数据、常量和其他匀速出来的结果),保存到内存的某个位置,然后将内存地址赋值给左侧的变量(常量)。
算术运算符
+ 执行数据累加
- 数据相减
* 乘
/ 除
% 取余运算
在进行取余或除法时,被除数不能为0
比较运算符
比较两个数据的大小,或者两个内容是否相同,返回结果都是bool类型(满足返回true)
>
>=
<
<=
|=数据大小不同
== 数据大小相同
=== 全等于(数据大小和数据类型都相同)
|== 不全等于,只有大小或类型不同
<?php $a=$b=10; $c=0; //var_dump($a/0); //error 被除数不能为0 echo "<hr/>"; $a="123"; $b=123; //判断相等 var_dump($a==$b); //返回true //全等判断 var_dump($a===$b); //返回false ?>
逻辑运算符
针对不同的结果进行匹配
&& 逻辑与
|| 逻辑或
! 逻辑非
<?php $a="weekend"; $b="goods"; //逻辑与 var_dump($a == "weekend"&& $b=="good"); //bool(false) 在日常写码时,尽量将出现概率最高的表达式放到第一位。 var_dump($a=="weekend"||$b=="good");//bool(true) var_dump($b=="good");//bool(false) var_dump(!($b=="good"));//bool(true) ?>
连接运算:是php中将多个字符串拼接的一种符号
. 将两个字符串连接在一起
.= 复合运算,将左边的内容与右边内容连接起来,然后重新赋值给左边变量。
A.=b ====A=A.b
<?php $a="weekend"; $b="goods"; $a.=$b; echo $a; //返回weekendgoods
错误抑制符:在可能出现的表达式前面使用@符号即可;
三目运算符
三目运算:有三个表达式参与的运算
语法格式
表达式1?表达式2:表达式3
运算:如果表达式1成立,那么执行表达式2,否则执行表达式3
自操作运算符:自己操作自己
++ 在原来的值上+1
-- 在原来的值上-1
php中操作符可以放到变量前或者后:前置自操作和后置自操作
$a=1;
$a++;
++$a; //前置或者后置如果本身只有自操作,不参与其他运算(自操作同时,那么效果是一样的,但是如果自操作同时还参与别的运算,那么效果就不一样)
$a=1;
$b=$a++; //后置自操作 $a=$a+1;$a=2;but $b=1
$c=++$a; //前置自操作 $a=$a+1;$a=2;$c=2
后置自操作:先把自己所保存的值留下来,然后改变自己,自己给别人的值是原来的值;
前置自操作:先把自己改变,然后把改变后的值给别人
衍生符号:类似自操作
+=:左边的结果与右边的结果相加,然后赋值给左边
-=:左边的减去右边的结果,然后赋值给左边
*=
/=
%=
注意 :右边是一个整体
计算机码:原码、补码、反码
位运算符
位运算:取出计算机中最小的单位(bit)进行运算
& 按位与
| 按位或
~ 按位非
^ 按位异或 同0异1
<< 按位左移,整个位(32位),向左移动以为,右边补0
>>按位右移动
运算符优先级
流程控制:代码执行的方向
控制分类:
顺序结构:代码从上往下,顺序执行
分支结构:给定一个条件,同时有多种可执行代码,然后根据条件执行某一段
循环结构:在某个条件控制范围内,制定的代码块可以重复执行。
顺序结构:最基本结构,所有代码默认都是从上往下依次执行
分支结构:在php中,分支结构主要有两种:if分支和switch分支
if分支:
if分支php也可以提供多种方式来实行
if(条件表达式1){
//满足条件时所要执行的代码段
}elseif(条件表达式2){
不满足条件表达式1,但满足条件表达式2}
<?php $day="friday"; if($day=="sunday"){ echo 'work'; }elseif($day=='satarday'){ echo 'go out'; } else{echo "learing"; }
Switch分支:将条件放到分支结构内部判断
基本语法:
switch(条件表达式) //所有条件判断:逐个进行 case 值1: //当前条件表达式的结果与值1相等(==) brak; //在switch中,如果条件匹配成功,那么系统就不会再次匹配条件,会自动顺序执行下辖的所有代码(case代码除外),需要中断执行。 case 值2: berak;
if和switch的选择
1、if能做所有分支结构事情
2、switch处理的时条件比较多,同时比较单一,而且时固定值匹配的分支结构。
循环结构:代码段在一定的控制下可以多次执行
for循环
for(条件表达式1;条件表达式2;条件表达式3){ //条件表达式1:定义初始化条件,可以有多种赋值语句存在,使用逗号分隔即可。 //条件表达式2:边界判定,限定循环执行的次数 //条件表达式3:用来执行条件变化 循环体 }
<?php //从1到 10输出 for($i=1;$i<=10;$i++){ echo $i,"<br/>"; } echo $i;
//无条件for循环 for(;;){ 死循环 }
while循环
条件初始化 while(条件表达式) { //条件表达式用于判断边界条件 循环体;//循环条件的变化 }
<?php //从1到 10输出 $i =1; while($i<=10){ echo $i,"<br/>"; $i++; }
for与while的选择
1、如果时基于固定一直条件,使用for循环
2、while可以做灵活的条件判定
do-while循环:至少执行一次循环体
foreach循环:专门针对数组
循环控制
中断控制:重新开始循环,循环体重还有其他内容,也再执行;
continue 层级;
终止控制:直接跳出循环
break层级;
<?php //do-while //输出1-100之间的5的倍数 $i=1; while($i <=100){ if($i %5 !=0 ){ //说明$i不是5的倍数 $i++; //重新循环 //continue; //重新跳到循环开始处 break;//终止循环 } echo $i,"<br/>"; } echo $i;
流程控制替代语法:分支和循环结构的替代语法