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 ...
随机推荐
- resure挽救笔记本系统和一些相关的操作记录
使用fedora23很久了, 但是感觉不是很流畅, 出现了一些不太稳定的体验, 所以想改到centos7. 因为centos7的很多东西 跟 fedora23 很相近了. 所以应该是无缝过渡 是选择3 ...
- Docker 使用Dockerfile构建tomcat镜像
Dockerfile概念: 镜像的定制实际上就是定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那么之前提及的无法重复的问题. ...
- Python SSH爆破以及Python3线程池控制线程数
源自一个朋友的要求,他的要求是只爆破一个ip,结果出来后就停止,如果是爆破多个,完全没必要停止,等他跑完就好 #!usr/bin/env python #!coding=utf-8 __author_ ...
- js变量按照存储方式区分,有哪些类型,并表述其特点
// 值类型 拷贝形式 不像引用类型是指针指向,共用空间 值类型有 undefined string number Boolean var a = 100; var b = a; var a = 20 ...
- ES6中对象
ES6允许把声明的变量直接赋值给对象,我们看下面的例子. let name="Zachary"; let skill= 'web'; let obj= {name,skill}; ...
- SQL语句总结2018-11-7
增加一条数据 insert into table (列字段1,列字段2)values(列1值,列2值) 删除一条数据 delete from table where 列名1=值1 修改一条数据 upd ...
- Docker:Service
Prerequisites Install Docker version 1.13 or higher. Get Docker Compose. On Docker for Mac and Docke ...
- 线程间操作无效: 从不是创建控件“button2”的线程访问它
在项目中经常遇到类似的问题,如何解决呢,报错的方法中添加 Control.CheckForIllegalCrossThreadCalls = false; 就可以解决了.
- C# 委托例子
两个子窗口向一个主窗口发送信息 主窗口: using System; using System.Collections.Generic; using System.ComponentModel; us ...
- Java转义形如nbsp;的HTML编码
需要引用一个maven <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <d ...