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 ...
随机推荐
- git如何将一个分支合并到另一个分支?
答: git merge --no-edit <another branch>
- Ubuntu18.04 一些好用的扩展
原文:https://www.lulinux.com/archives/2589 一些好用的扩展: United:https://www.gnome-look.org/p/1167950/ dynam ...
- AGC006D Median Pyramid Hard
闲扯 今天模拟的题,应该是挺简单的二分和贪心,就是没想出来,我好弱啊 顺便ORZ聚聚BLUESKY007,踩爆我了 思路 今天发现中位数性质如此优秀 二分最后塔顶的数,大于等于它的数变为1,小于它的数 ...
- jvm:分析工具
bin/jvisualvm.exe 可查看类实例数 bin/jconsole.exe 监控线程,堆,等 http://blog.csdn.net/yaowj2/article/details/7107 ...
- Mapreduce 历史服务 配置启动查看
如果没有进行配置的话,那个History是不可以进行点击的,点击进去就会报错!所以需要进行配置一下 使用命令启动HistoryServer 就可以查看任务执行的进度了 命令: sbin/mr-jobh ...
- 【译】第23节---Fluent API - 实体映射
原文:http://www.entityframeworktutorial.net/code-first/configure-entity-mappings-using-fluent-api.aspx ...
- vs里32位项目和64位项目的区别
由于操作系统内存分配的不同,导致软件开发过程中,需要编译不同版本的软件. 1.编译程序根据需要选择不同的编译环境. x86和win32为32位程序,x64为64位程序,可以选择不同的编译条件形成不同位 ...
- 清除memcached缓存
telnet localhost 11211 flush_all 最后要一定要关闭dos窗体,不然会导致memcached写值返回ture,但是实际上并没有写入值
- 用R创建Word和PowerPoint文档--转载
https://www.jianshu.com/p/7df62865c3ed Rapp --简书 Microsoft的Office软件在办公软件领域占有绝对的主导地位,几乎每个职场人士都必须掌握Wor ...
- python 操作记事本
需事先打开记事本,再运行下面脚本 # encoding: utf- import win32api import win32gui import win32con print("Hello, ...