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 ...
随机推荐
- 【做题】NOWCODER142A Ternary String——数列&欧拉定理
题意:你有一个长度为\(n\),且仅由012构成的字符串.每经过一秒,这个字符串所有1后面会插入一个0,所有2后面会插入一个1,然后会删除第一个元素.求这个字符串需要多少秒变为空串,对\(10^9+7 ...
- 安装ubuntu的坑&RHEL7配置
1.需要其他设置->分区,分区需要有/根目录分区和swap空间,后者文件系统类型选择swap,其他都是ext4 2.普通配置电脑,安装16.04.5 LTS,不要安装最新的,安装重启后卡在那里, ...
- e信与酸酸结合开wifi使用路由器上网
关于e信"正常情况下"使用路由器网上是有方法的,入户线插上lan,电脑接lan拨号 我想要说的是连接e信后使用路由器上网,并且是绝对正常的思维 手机也是可以连接上wifi,但是手机 ...
- 【Spring Security】二、数据库管理用户权限
一 引入相关的jar包 这个例子用的是mysql数据库和c3p0开源的jdbc连接池,在项目的pom.xml中引入jar包 <!-- Mysql --> <dependency> ...
- (转载)windows下安装配置Xampp
XAMPP是一款开源.免费的网络服务器软件,经过简单安装后,就可以在个人电脑上搭建服务器环境.本文为大家介绍Windows中安装XAMPP(Apache+Mysql+PHP)及使用方法及其相关问题的总 ...
- Leetcode118_Pascal's Triangle_Easy
Given a non-negative integer numRows, generate the first numRows of Pascal's triangle. In Pascal's t ...
- sql注入解析
sql注入解析 sql注入解析(一)基本语法 sql注入解析(二)执行注入 sql注入解析(三)数据库类型 sql注入解析(四)避开过滤
- AmazeUI学习
http://amazeui.org/ 相比于其他国外的框架而言,Amaze UI更关注中文排版,被前端工程师称为最懂中文的前端框架. Amaze UI受欢迎的一个重要的原因是:文档非常完善,适合各阶 ...
- CART决策树
CART(Classification and Regression tree)分类回归树由L.Breiman,J.Friedman,R.Olshen和C.Stone于1984年提出.ID3中根据属 ...
- Oracle(字符函数)
单行函数语法: 语法:funcation_name(列 | 表达式[, 参数1, 参数2]) 单行函数主要分为以下几种: 字符函数:接收数据返回具体的字符信息 数值函数:对数字进行处理,例如:四舍五入 ...