php学习笔记-P1-2PHP基础-2
运算符:赋值、算术、比较、逻辑、三目、自操作,运算符优先级,分支结构:if、elseif、else、switch,循环结构:for、while、do-while,循环控制:break、continue,流程控制替代语法
一、赋值、算术、比较运算符
赋值运算符:
=,将右边的结果保存到内存,再将地址赋值给左边的变量- 连贯赋值运算:
$a = $b = 5;,从右往左进行赋值
php中运算符共10种
- 连贯赋值运算:
算术运算:
+:加-:减*:乘/:除%:取余(模)**:乘方
除和取余运算第二个数不能为0
比较运算符:比较大小、内容是否相同,返回布尔类型,满足 =>
true,不满足 =>false>:大于>=:大于等于<:小于<=:小于等于==:等于!=:不等于===:全等于(对比数据类型)!===:不全等于(对比数据类型)
二、逻辑运算符
逻辑运算符:对不同结果进行匹配
&&:与,两个都满足||:或,满足一个即可!:非,取反,针对一个结果
短路运算:
- 逻辑与:第一个条件为
false,则停止判断,结果为false - 逻辑或:第一个条件为
true,则停止判断,结果为true
尽量将决定性的条件放前面
- 逻辑与:第一个条件为
三、连接、错误抑制、三目运算符
连接运算符:字符串拼接
.:将两个字符串连接起来.=:将左边的内容与右边的内容连接起来,结果赋值给左边的变量$a .= $b; // 等价于 $a = $a . $b;
- 错误抑制符:
@,处理提前预知且不希望报错给用户的错误,尽量不要使用 三目运算符:三个表达式参与,简化的条件分支语句
表达式1 ? 表达式2 : 表达式3:若表达式1为true,则执行表达式2,否则执行表达式3
三目运算符可以嵌套
四、自操作运算符
自操作运算符:自己操作自己
++:自增加1--:自增减1
自操作符号位置:
- 独立操作,没有其他运算:前置和后置效果一样
有其他运算:
- 前置:先自操作,结果参与运算
- 后置:先运算,再自操作
衍生符号:类似自操作
+=-=*=/=:右边表达式不能为0%=:右边表达式不能为0**=
五、计算机码,位运算符、运算符优先级
计算机码:计算机实际存储数据时,用的编码规则(二进制码)
原码:数据本身从十进制转换成二进制得到的结果
- 正数:左边第一位为0
- 负数:左边第一位为1
- 反码:针对负数,符号位不变,其他位取反
- 补码:针对负数,反码加1
计算机中的0:
- +0:00000000(原码和补码一样)
-0:
- 原码:10000000
- 反码:11111111
- 补码:00000000
位运算:按计算机最小存储单位:位(bit)进行比较运算
&:按位与|:按位或~:按位取反^:按位异或:同0异1<<:整个(32位)按位左移,右边补0 => 乘以2>>:整个(32位)按位右移,左边补符号位内容 => 除以2,会有小数
$a = 5; $b = -5; /* 5原码: 00000101 -5原码: 10000101 反码:11111010 补码:11111011 /* // 按位与 var_dump($a & $b); // 输出:1 /* 5 00000101 -5 11111011 & 00000001 转换:判断符号位:0-正数(原码),1-负数(补码)=》转码 */注意:
- 系统进行任何位运算,使用的都是补码
- 位运算结束后,必须转换成原码才是最终要显示的数据
- 运算符优先级(从上往下优先级依次降低)

六、分支结构-if分支
流程控制:代码执行的方向
- 顺序结构:从上到下依次执行(基本)
分支结构:根据条件执行某个分支代码
- if
- switch
循环结构:在某个条件范围内,重复执行代码块
- for
- while
- do-while:先执行依次
- foreach:针对数据
if分支:根据if后面条件,执行对应的代码块
最简if:
if(条件表达式){ 满足条件需要执行的代码块; }基础if
if(条件表达式){ 满足条件需要执行的代码块; }else{ 不满足条件需要执行的代码块; }复杂if
if(条件表达式1){ 满足条件表达式1需要执行的代码块; }elseif(条件表达式2){ 不满足条件表达式1,满足条件表达式2,需要执行的代码块; }else{ 都不满足时需要执行的代码块; }- if嵌套:支持多层嵌套
七、if分支实例
八、分支结构-switch分支
switch:固定值匹配,基本语法:
switch(条件表达式){ // 逐个匹配 case 值1: 值1匹配上需要执行的代码块; break; case 值2: 值2匹配上需要执行的代码块; break; default: 匹配失败需要执行的代码块; break; }
九、for循环
基本语法:
for(条件表达式1;调价表达式2;条件表达式3){ // 条件表达式1:定义初始条件,执行一次,多个语句用 , 隔开 // 条件表达式2:定义循环次数,满足条件执行循环体 // 条件表达式3:执行条件变化 循环体; }特殊使用:3个条件表达式可以都为空,分号不能省略
for(;;){ // 无限循环,一般情况不能这样写 echo 'hello world'; }
十、while和do-while循环
while循环语法:
条件初始化; while(条件表达式){ 循环体; // 判断条件在循环体中变化 }for和while的选择:
- 固定的已知条件(有规律的数值变化),用for循环
- 灵活的条件判断,用while循环
do-while循环语法:(至少执行一次循环体)
条件初始化; do{ 循环体; // 判断条件在循环体中变化 }while(条件表达式);
十一、循环控制
循环控制:在循环内部对循环本身进行控制
- 中断控制:
continue 层级n;,跳过n层循环,继续执行下一次循环 - 终止控制:
break 层级n;,终止n层循环,继续执行后面的代码
- 中断控制:
十二、流程控制替代语法
for替代语法
案例引入:
<table border=1> <?php for($i=1;$i<10;$i++){?> <tr> <?php for($j=1;$j<$i;$j++)?><?php }?> <td> <?php echo $i.' * '.$j.' = '.$i*$j;?> </td> <?php }?> </tr> <?php }?> </table>混写的时候大括号非常不美观,替代语法:
for(;;){=>for(;;):}=>endfor;// 分号可以不写
替代语法通用格式
{::}:if:endif;switch:endswitch;for:endfor;while:endwhile;foreach:endforeach;
评论已关闭