目录
分支结构
在php中分支结构有两种 if和switch分支
if分支
if如果的意思,给定一个条件,同时为该条件设置多种情况,通过条件判断,来实现具体的执行段
基本语法:
最简if只有一段代码,但是可用选择是否执行
if(条件判断){
//满足条件所要执行的内容;//顺序结构
}
基础if:有两面性,满足条件或者不满足条件都有对应的执行代码
if(条件判断){
//满足条件后执行的代码段;
}else{
//不满足条件执行的代码段;
}
复杂if结构:在判断条件之后,通常就有两种结果:满足或者不满足,在不满足之后还可以再次条件判断
if(条件判断1){
//满足条件表达式1;
}elseif(条件判断2){
//不满足条件1,但是满足表示式2的代码;
}... //可以使用多个elseif进行条件筛选
Switch分支
Switch分支:有一组情形存在,同过一条件,通常有多个值,但是每一个值都会有对应不同的代码要执行
Switch判断方式:是将条件放到分支结构内部进行判断
switch 基本语法:
Switch(条件表达式){
//所有条件判断,逐个运行
Case 值1: //当前条件表达式的结果与值1相等(==)
要执行的代码段;
break; //在switch中如果条件匹配成功那么系统就不会再次匹配条件,会自动顺序执行向下的所有代码(case代码除外),需要中断执行:break表示中断switch(结束)。
Case值2:
要执行的代码段;
Break;
//可以使用类似else的语法:都不匹配
Default:
//匹配失败的代码;
Break;
}
举例:
switch 基本语法:
if和switch的选择
- if能做所有的分支结构的事情
- switch处理的是条件比较多,同时比较单一,而且是固定值匹配的分支结构
循环结构
循环结构:代码段在一定的控制下,可以多次执行
在php中循环结构有以下集中:
for循环:通过条件、起始和终止判断执行
while循环通过判断条件终止
do-while循环跟while差不多
foreach循环:专门针对数据
For循环
for循环基本语法
for(条件表达式1;条件表达式2;条件表达式3){
//条件表达式1:定义初始化条件,可以都有多种赋值语句存在,使用逗号分隔即可
//条件表达式2:边界判断,限定循环执行的总次数
//条件表达式3:用来执行条件变化
//循环体
}
for循环执行原理:
- 执行条件表达式1:定义初始化条件(执行1次)
- 执行条件表达式2:判断条件(N次)
2.1满足条件:执行循环体
2.2不满足条件:循环结束
- 执行循环体:(N次)
- 执行条件表达式3:循环变量变化(N次)
- 重复
循环结构
while循环
while循环基本语法:
条件初始化;
while(条件表达式){
//条件表达式是判断边界条件
循环体; //循环条件的变化
}
for与while的选择
- 如果是基于固定已知条件(数值而且是有规律的变换),使用for循环
- while可以做灵活的条件判断(while使用的比较多)
do-while循环
do-while:看着很像while,while首先进行条件判断,然后执行循环体,有可能出现第一次就条件不满足,那么就会直接失败(循环体一次都不执行)。do-while就是先干了再说(执行循环体),后判断条件。(至少会执行一次循环体)
do-while基本语法:
do{
//循环体
}while(条件判断式);
循环控制
循环控制:在循环内部对循环本身进行控制
中断控制:重新开始循环,循环体中还有其他内容,也再执行
continue层级; //默认是1(循环可以是多层嵌套)
终止控制:循环直接结束
break层级://默认是1/
因为循环经常性会碰到嵌套(循环中间包含循环),如果在循环内部,有些条件下,明确可以知道当前循环(或者外部循环)不需要继续执行了,那么就是可以使用循环控制来实现
其中内部循环也可以控制到外部,就是通过使用层级循环
continue 2; //当前自己循环后面内部不再执行,同时外部循环如果还有循环体也不再执行,重新来过
break2; //当前自己循环结束,同时外部循环也结束(如果还有外部不受影响,继续执行)
流程控制替代语法
流程控制替代语法:分支和循环的替代语法
php本身是嵌入html中的脚本语言,需要在html中书写一些关于判断或者循环的结构语法,必须符合php标签规范,需要html与php进行混搭,如果使用原始的php代码那么非常不美观
需求:打印一个99乘法表,使用表格
在php书写到html中的这些大括号{}非常不美观,所以php提供了一些替代机制,让其可以不用书写大括号:
for(;;){ = -> for(;;):
-> endfor;
php中具体有哪些替代语法呢?php应该在html中只做数据输出,输出通常伴有条件判断
和循环操作,因此提供了对应分支结构和循环结构的替代语法:全部都是对应的一个模式
左大括号{使用冒号提到:
右大括号} 使用end+对应的起始标记替代
if: if() endif;
switch: switch(): endswitch:
for
while
foreach
文件包含
文件包含:在一个php脚本中,去将另一个phph包含进来,去合作完成一件事情
文件包含的作用
文件包含的意义
- 要么使用被包含文件中的内容,实现代码的共享(重用):向上包含
向上包含:在当前脚本要用某个代码之间包含别的文件
- 要么自己有东西可以给别的文件使用,实现代码的共享(重用):向下包含(给予)
向下包含:在自己有某个东西的时候,需要别的脚本来显示(自己代码写完之后包含其他文件)
最大的作用:分工协作,每个脚本做的事情不一样,因此有使用协作方式,让多个脚本共同完成一件事情
文件包含四种形式
在php中文件的包含有四种形式(两种大形式)
include:包含文件
include_once:系统自动判断文件包含过程中,是否已经包含过(一个文件最多被包含一次)
require 与include相同
require_once: 以include_once相同
包含的基本语法
include ‘文件名字’;
include(‘文件名字’); //文件名称 路径问题
以上这种模式是先包含文件,后使用文件中的内容:向上包含
向下包含:先准备内容,然后包含另外的文件,在另外的文件中,使用当前的内容
文件加载原理
文件加载原理:
- 在文件加载(include或者require)的时候,系统会自动的将被包含文件中的代码相当于嵌入到当前文件中
- 加载位置:在哪里加载,对应的文件中的代码嵌入的位置就是对应的位置
include和require区别
include和include_once的区别
include系统会碰到一次,执行一次;如果对统一文件进行多次加载,那么系统会执行多次;
include_once:系统碰到多次,也只会执行一次
require和include的区别;本质都是包含 文件,唯一区别在于包含不到文件的时候,报错的形式不一样,include不影响下面代码执行,
include:错误级别较低
require:如果包含出错,则代码不再执行
文件加载路径
文件在加载的时候需要指定文件路径,才能保证PHP正确的找到对应的文件。
文件的的加载路径包含两大类,绝对路径,相对路径
- 绝对路径,从磁盘的跟目录开始或者从网站根目录下面开始
windows:盘符开始C:/路径/PHP文件
Linux;/路径/PHP文件
- 相对路径,相对于当前文件夹下。
文件嵌套包含
文件嵌套包含:一个文件包含另一个文件,同时被包含的文件又包含了另一个文件。