PHP流程控制笔记
一.运算符(Operator)
1.运算符
2.运算符分类
(1)按功能分
(2)按操作数个数分
3.按功能分
(1)算术运算符
(2)递增递减
(3)字符运算符
(4)赋值运算符
(5)比较运算符: > >= < <= ==
!= <> ===(全等于)
!==(不全等于)
说明:
a.比较运算符结果布尔值
b.===(全等于):值和类型都相同才为真
否则为假
c.===(不全等于):值和类型都相同为假
否则为真
d.比较运算类型转换
(a)字符串或null跟字符串比较
如果数值比较按大小
如果字母比较按位字母比较
如果数字和字母比较按位ASCII码比
null转为 空字符串
(b)布尔值跟其他类型比较
按布尔值比较 true > false
(c)数值或字符串跟 数值比较
按数字比较
(d)===(全等于)和===(不全等于)的使用
原理:变量会根据程序环境自动转换,
例如: 0,0.0,'0'自动转为布尔值
false,为了避免自动转换产生的错
误,用===(全等于)和===(不全等于)
解决
(6)逻辑运算符: &&,and(与,并且) ||,or(或者)
!(非) xor (异或)
说明:
a. 逻辑运算符结果布尔值
b. &&,and(与,并且):第一个表达式和第
二个表达式都为真才为真
否则为假
c.||,or(或者):第一个表达式和第
二个表达式都为假才为假
否则为真
d.xor (异或) :第一个表达式和第
二个表达式布尔值结果不同
为真相同为假
e.短路原理:第一个表达式的结果就能确定
整个表达式结果,第二个表达式
忽略不执行,产生短路
&&,and(与,并且):第一个表达式为假
产生短路,第二个表
达式忽略不执行
||,or(或者) :第一个表达式为真
产生短路,第二个表
达式忽略不执行
(7)错误抑制符: @,有错误忽略,没错误不忽略
说明: 一般用在函数或表达式前面
(8)执行运算符:反引号 ``
说明: PHP命令行模式
4.按操作数个数分
(1)一元运算符:1个操作数
++$var --$var @ !
(+)正号 (-)正号等
(2)二元运算符:2个操作数
+ - * / % 等等
(3)三元运算符:3个操作数
expr1?expr2:expr3;
说明:
a.expr1如果为真那么执行expr2
否则 expr3
b.expr1?expr1:expr3 PHP5.3以上支持
c.expr1??expr3 PHP7.0 支持
5. 运算符优先级
(1)一元运算符和赋值运算符属于右结合
(从右往左运算)其他都属于左结合
(从左往右运算)
(2)运算符优先级高的先运算,运算符优先级
相同按左结合或右结合运算
(3)有短路先考虑短路
(4) 用() 可以改变优先级顺序
(5) 查看优先级表
一元运算符
二元运算符(算术 比较 逻辑 先&&后||)
三元运算符 赋值运算符 and xor or
二.流程控制语句:
1. 原理:程序是自上而下逐行执行的,
如果想通过条件执行某段代码,或重复
执行某段代码,那就要用到流程控制语
句
2.流程控制语句分类
(1)条件分支语句
(2)循环语句
3.条件分支语句
if( )小括号中的条件 只能是 布尔类型值,通常由比较运算符或逻辑运算符组成的表达式所计算的结果值或是返回布尔型的函数等
如果传入其他类型的值,也会自动转换为布尔型的true或false
(1) if单分支语句:
if(expr条件){
...
}
说明:
a.如果expr条件为真那么执行if
后里的代码段,否则不忽略执行
if语句执行后面的顺序语句
b.如果if里的代码段只有一条语句
可以省略大花括号
(2) if双分支语句:
if(expr条件){
...
}else{
...
}
说明:
a.如果条件为真,那么执行if后面代码段
否则执行else后面的代码段
b. 二选一
(3) if多分支语句:
if(expr1){
...
}elseif(expr2){
...
}elseif(expr3){
...
}......
[else{
echo '条件都为假执行的语句组';
}]
说明:
a.多分支语句根据不同的条件执行对
应的代码段,如果某个条件为真那
执行后面对应的代码段然后结束多
分支语句,如果条件都为假,并且else
存在那执行else后面的代码段然后结
束多分支语句
b. 至多多选一
(4)if嵌套
a.if中写嵌套
if(expr1){
if(expr2){
//写嵌套
}else{
...
}
}else{
...
}
a.else中写嵌套
if(expr1){
...
}else{
if(expr2){
...
}else{
//写嵌套
}
}
(5)switch 语句
switch() 数据类型只能是 整型 或者 字符串,不能是布尔值
switch($变量名){
case value:
...
break;
case value:
...
break;
case value:
...
break;
......
default:
...
break;
}
说明:
a.switch 语句:实现if多分支语句效果
b.判断变量名等于某个特定值
c. case 等同 == 松散比较
d. switch 语句没有结束多分支语句的
功能 break或continue 结束分支语句
循环
1.什么时候用循环:重复的事情和有规律的事情用循环
2.for循环
(1)格式
for(expr1;expr2;expr3){
...
}
说明:
a.expr1:无条件执行一次,一般给变量
赋初始值
b.expr2:每次循环时都执行的语句,
作用判断循环的条件
(循环终止条件)
c.expr3:每次循环后(循环体最后)执行
的语句,作用变量步长(增量,减量)
for特殊使用
(1)省略表达式
for(;;){
...
}
(2)每个表达式可以写多条语句
说明:
a.每个表达式用分号隔开
一个表达式的多条语句
用逗号隔开
b.第一个表达和第三个表达式可以写多条
c.第二个表达写多条语句只执行最后一条
语句
3. while 和 do...while
while(布尔型)通常用于循环次数未知的循环结构
(1) 格式
while(expr条件){
...
}
do{
...
}while(expr条件);
说明:
a.for,while先判断条件后执行语句
do...while 先执行语句后判断条件
b.当第一个判断条件为假,do...while
比while多执行一次
c. for 一般实现精确次数循环
while 可以实现不定次数循环
4. break,continue
说明:
a.break 用 switch和循环中
作用结束程序执行,
如果用在多重循环中结束一层循环
可以通过接受一个可选的数字参数来确定跳出几重循环语句或几重switch语句
b.continue用 switch和循环,
如果用switch中与break作用一样;
如果用在循环中跳过当前循环,后面的代码执行下一次循环(跳过一次循环)
可以通过接受一个可选的数字参数来确定跳出几重循环语句或几重switch语句
PHP流程控制笔记的更多相关文章
- Java学习笔记之:Java流程控制
一.介绍 Java流程控制包括顺序控制.条件控制和循环控制. 顺序控制,就是从头到尾依次执行每条语句操作.条件控制,基于条件选择执行语句,比方说,如果条件成立,则执行操作A,或者如果条件成立,则执行操 ...
- 《Node.js In Action》笔记之流程控制
转向Javascript后,开始学习了node.js,选择的第一本书是<Node.js in Action> 将近一个月时间,断断续续看完,选几个点做下笔记 1.实现串行化流程控制 var ...
- [原创]java WEB学习笔记43:jstl 介绍,core库详解:表达式操作,流程控制,迭代操作,url操作
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- [Java入门笔记] Java语言基础(四):流程控制
流程控制指的是在程序运行的过程中控制程序运行走向的方式.主要分为以下几种: 顺序结构 顺序结构,顾名思义,是指程序从上往下逐步顺序执行.中间没有任何的判断和跳转. 分支结构 Java提供两种分支结构: ...
- 高性能JavaScript笔记二(算法和流程控制、快速响应用户界面、Ajax)
循环 在javaScript中的四种循环中(for.for-in.while.do-while),只有for-in循环比其它几种明显要慢,另外三种速度区别不大 有一点需要注意的是,javascript ...
- JavaScript学习笔记——流程控制
javascript流程控制流程:就是程序代码的执行顺序.流程控制:通过规定的语句让程序代码有条件的按照一定的方式执行. 一.顺序结构 按照书写顺序来执行,是程序中最基本的流程结构. 二.选择结构(分 ...
- [java学习笔记]java语言基础概述之运算符&程序流程控制&for循环嵌套
一.运算符 算数运算符 +,-,*,/,%,++,-- 1.+,-,*,/ 整数除以整数的结果为舍弃了小数部分的整数. 2.%:取余 %左右都为正数,左边小于右边结果为左边值,如,4%5=4 %左边大 ...
- No1_2. 流程控制_java学习笔记
import java.util.Scanner; import java.lang.Math; public class HelloForWhile { /** * 文档注释,程序名称:HelloF ...
- 流程控制 - PHP手册笔记
脚本由语句构成,语句靠流程控制实现功能,这一节主要介绍了几个关键字的使用. elseif elseif和else if的行为完全一样,如果用冒号来定义if/elseif条件,那就不能用两个单词的els ...
随机推荐
- shell中的变量a=100, 什么时候作整数使用, 什么时候作字符串使用呢?
shell中的变量a=100, 什么时候作整数使用, 什么时候作字符串使用呢? 这确实是一个困扰很久的一个问题? how it can be an issue? 事实上, 在shell中, 你可以认为 ...
- SSM项目 单元测试中 注入bean 空指针异常
##特别 由于准备春招,所以希望各位看客方便的话,能去github上面帮我Star一下项目https://github.com/Draymonders/Campus-Shop java.lang.Nu ...
- 用C#.NET调用Java开发的WebService传递int,double问题,出现java无法获得值!
https://www.cnblogs.com/zhbsh/archive/2013/04/22/3035477.html 用C#.NET调用Java开发的WebService时,先在客户端封装的带有 ...
- Sql 通过表名查找所有列名
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'ImmediacyOutKu'
- [午间休息] - 午间codewars活跃脑袋
https://www.codewars.com/kata/51f2b4448cadf20ed0000386/javascript 中午是一个易困的时间段.如果其它人不睡觉还好. 这个js题目就是说如 ...
- 【OData】使用Odata获取数据之后再次获取可能得不到最新的数据问题记录
工作上遇到个问题是关于系统后台数据库更新了某数据后, 前台界面刷新显示的不是最新的数据.但是大约10分后再次刷新就能显示新的数据,或者重启IIS等web server host. 最开始认为可能是因为 ...
- python学习 day10打卡 函数的进阶
本节主要内容: 1.函数参数--动态参数 2.名称空间,局部名称空间,全局名称空间,作用域,加载顺序. 3.函数的嵌套 4.gloabal,nonlocal关键字 一.函数参数--动态传参 形参的第三 ...
- Windows系统零开始前端开发环境配置
1. 安装nodejs 国内下载页面(推荐) 官网下载页面 现在的nodejs自带NPM,只需点击下一步下一步安装即可. 为了加速国内NPM包下载,可配置淘宝NPM镜像 2. 安装git 国内下载页面 ...
- C#解析html文档类库HtmlAgilityPack下载地址
新:http://html-agility-pack.net/?z=codeplex 原:http://htmlagilitypack.codeplex.com/
- bzoj 1036: [ZJOI2008]树的统计Count 树链剖分+线段树
1036: [ZJOI2008]树的统计Count Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 16294 Solved: 6645[Submit ...