PHP ( 02流程控制 + 数组 )

我是dream,我在新课培训学习网安方面的知识,下面是我的第13次上课的内容。

创建一个网站的流程:


01 在小皮上创建一个新的网站

创建成功

02 用VS code 打开刚才的创建的文件夹,开始编程

输入的网址为域名+PHP页面名称

未经过流程控制的代码:从上往下依次执行某个代码


一、流程控制

概念:

选择结构语句:指的就需要对一些条件作出判断,从而决定执行指定的代码

1. 条件结构                                                                                                                                   
 1.1   ‘if’ 单分支语句                                                                                                                     

1.2 if …else 语句                                                                                                                        

if…else语句也称为双分支语句,当满足某种条件时,就进行某种处理,否则进行另一种处理。

1.3 三目运算符                                                                                                                                  

? : 可以代替简单的 if…else

1.4 if…elseif…else                                                                                                                          

if..elseif..else语句也称为多分支语句,用于针对不同情况进行不同的处理

条件结构:if…elseif…else

按顺序执行:if ----> elseif -----> else

a).   if 一定在最前面

b).  elseif一定在else前面

c).   一旦进入了if,就不会再进入elseif和else了

d).  一旦进入了elseif,就不会再进入else了。

e).  不管有多少个elseif只能进入其中一个

f).   ifelse只能有一个,elseif可以有多个。

举例:对一个学生的考试成绩进行等级的划分,若分数在90~100分为优秀,分数在80~90分为优秀为良好,分数在70~80分为中等,分数在60~70分为及格,分数小于60则为不及格。

如果不重新给$cj赋值,那么直接运行区间范围,出现的数字会是随机的。

一旦if判断为true,后面的判断全都不会进行。

只要为true,判断结束,输出结果。

1.5 定值判断                                                                                                                                      

switch 语句

概念:switch语句也是多分支语句,功能与if系列条件语句相同,不同的是它只能针对某个表达式的值作出判断,从而决定执行哪一段代码

特点:代码更加清晰简洁、便于阅读

举例:根据学生成绩$score进行评比(满分为100分)

工作原理:首先对一个简单的表达式 n(通常是变量)进行一次计算。将表达式的值与结构中每个 case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配(即没有 case 为真)时执行

只有一个花括号,在一个代码块里面,当匹配到一个值的时候,后面的也会去执行,这时候我们就需要用break这个语句进行结束,当每一个值都不匹配的话,我们还需要让他继续去执行的话就需要输出default这个值,也就是相当于else

范围判断建议用:if…elseif…else结构

2. 循环结构                                                                                                                                       

循环结构语句

概念:就是可以实现一段代码的重复执行

举例:计算给定区间内的偶数或奇数的和等

经常需要让相同的代码块一次又一次地重复运行,我们可以在代码中使用循环语句来完成这个任务。

while(条件){

  代码  //可能会重复执行多次的

}

// 此处代码不会在循环一次后立即执行

2.1 while循环                                                                                                                                     

如果i=10,会发生什么?

条件不满足时,while一次都进入不了,会输出一片空白

2.2 do…while                                                                                                                                    

do…while循环语句的功能与while循环语句类似

唯一的区别在于,while先判断条件后执行循环体,而do...while会无条件执行一次循环体后再判断条件。

当条件不满足,比如$i >= 5时,会无条件执行一次。

求和

2.3  for 循环                                                                                                                                    

for循环语句是最常用的循环语句,它适合循环次数已知的情况

循环四要素:

   01 循环变量定义

   02 循环条件判断

   03 循环变量在循环中改变

   04 循环操作

由于循环三要素都写在( )中,让人比较直观地看到循环的初始值和最大值,以及循环的次数。

练习:                                                                                                                                               

输出从1-100的所有偶数

取巧之法:

常规方法(运算符%,条件结构,循环结构)

写九九乘法表

2.4 continue和break 跳转指令                                                                                              

continue语句与break语句的区别在于,前者continue用于结束本次循环的执行,开始下一轮循环的执行操作;后者break 用于终止当前循环,跳出循环体

break语句可应用在switch和循环语句中,其作用是终止当前语句的执行,跳出switch选择结构或循环语句,执行后面的代码。

 continue break 关键字可以作用于 while、do while 、for             

continue:用于跳过本次循环,直接进入下一次循环(循环变量自增不会跳过)                           

 break: 用于结束循环

二、文件包含语句

作用:在程序开发中,会涉及到多个PHP文件。为此,PHP提供了包含语句,可以从另一个文件中将代码包含进来。

好处:不仅可以提高代码的重用性,还可以提高代码的维护和更新的效率。

inclue语句                                                                                                                                        

具体语法:include ‘文件路径’

“文件路径”指的是被包含文件所在的绝对路径或相对路径。

所谓绝对路径就是从盘符开始的路径,如“C:/web/test.php”。

所谓相对路径就是从当前路径开始的路径,假设被包含文件test.php与当前文件所在路径都是“C:/web”,则其相对路径就是“./test.php”。

在相对路径中,“./”表示当前目录,“../”表示当前目录的上级目录。

  • 可以将其他PHP的内容拿过来;
  • 可以放在任意位置

三、数组

1、数组概念                                                                                                                                       

概念:与变量一样的是也是在内存中开辟一块储存数据的空间。不同的是变量是储存单个数据的空间, 而数组一组连续的内存空间, 可以用于储存多个数据。

思考:如何保存一个班级的所有学生、一个公司的全部员工等的相关信息

回答:一种方法,利用前面学习过的知识,则每一条信息都需要一个变量去保存,缺点是这样做很麻烦,而且容易出错,又不合理;另一种方法就是利用数组

概念:数组就是一个可以存储一组或一系列数值的变量

目标:将多个互相关联的数据,组织在一起形成一个合集,作为一个单元使用

数组构成:数组是由一个或多个数组元素组成

数组元素:每一个数组元素由键(Key)值(Value)构成

:“键”为元素的识别名称,也被称为数组下标

: “值”为元素的内容

映射: “键”和“值”之间存在一种对应关系,称之为映射

类型划分:根据键的数据类型,可以将数组划分为索引数组关联数组

2、所有的分类                                                                                                                                   
2.1 索引数组                                                                                                                                      

索引数组是指键名整数的数组。默认情况下,索引数组的键名是从0开始,并依次递增。它主要适用于利用位置(0、1、2……)来标识数组元素的情况。另外,索引数组的键名也可以自己指定。

array()

Array ( [0] => C [1] => Python [2] => java [3] => go )

[ ] 是系统自动生成的 index索引,下标)

a) 使用下标可以取出数组中对应的元素(element)

b)  用print_r是最好的语法

c)使用下标替换数组中某一个位置的值 

2.2 关联数组                                                                                                                                      

关联数组是指键名字符串的数组。通常情况下,关联数组元素的之间有一定的业务逻辑关系。因此,通常使用关联数组存储一系列具有逻辑关系的变量。关联数组的键都是字符串,并与值之间具有一一对应的关系

一个数组中的元素都分为两个部分(左边k--key键) (右边v--value值中间使用=>分割k和v

 a)取值和赋值时,只能使用key去找到value

 b)key不能相同的,如果有相同的key,那么后者会覆盖掉前者

 c)value可以相同

 a)取值和赋值时,只能使用key去找到value

b)key不能相同的,如果有相同的key,那么后者会覆盖掉前者

 c)value可以相同

d) 元素的赋值

取值和赋值都只能通过key来完成。

3、数组定义                                                                                                                                  
3.1 array()语言结构法                                                                                                                   

array()语言结构中的数组元素使用“键=>值”的方式进行表示,各元素之间使用逗号(,)进行分割。

数组在省略键名的设置时,默认从0开始,依次递增加1,因此该数组元素的键名依次为“0、1、2”。

除此之外,还可以根据实际需求自定义数组元素的键名,如上述示例中的$sports数组变量,将其第1个元素键名设置为2,第2个元素的键名设置为4

前面几乎用print_r()来输出,这里用echo输出,只需要加上具体的下标。

在定义关联数组时 “键”则有明确的数据类型要求,具体如下。

>只能是整型或字符串型的数据,如果是其他类型,则会执行类型自动转

> 合法整型的字符串会被转为整型,如“2”转为2,而“02”则不会被转换,因为其不是一个合法的十进制数值

> 浮点数被舍去小数部分直接转换成整型,如“2.6”转为2

> 布尔类型true会被转为1,false转为0

> NULL类型会被转为空字符串

> 若数组中存在相同键名的元素时,后面的元素会覆盖前面元素的值

在定义数组时,还可以定义没有任何元素的数组,以及既有索引表示方式、又有关联表示方式的数组元素。

$mixed数组的元素“b”指定了数字键名为“5”

“b”元素后的“a”元素会自动将前面最大的数字键名加1后,作为其键名,即5+1得到键名6。

3.2 短数组定义法                                                                                                                           

短数组定义法([])与array()语法结构相同,只需将array()替换为[]即可

1. 不要括号,直接赋值

2. 也可用于关联数组赋值

 

 4、访问数组                                                                                                                                      
4.1、基本访问                                                                                                                                    

数组定义完成后,若想要查看数组中某个具体的元素,则可以通过“数组名[键]”的方式获取。

另外,若要一次查看数组中的所有元素,则可以利用前面学习过的输出语句函数print_r()var_dump(),并且通常情况下为了使输出的函数按照一定的格式打印,查看时经常与pre标记一起使用。

4.2、遍历数组                                                                                                                                    
 4.2.1 for循环遍历                                                                                                                             

所谓遍历数组就是一次访问数组中所有元素的操作可以使用 for 循环

4.2.2 foreach循环

1. foreach非常强大,可以直接取出值不需要手动生成下标;

  2. 只需要定义一个变量保存foreach取出来的值即可

如果是遍历无顺序的数组,由于数组中的键没有规律可循,所以可以使用foreach循环语句,foreach仅用于数组,有两种语法。格式如下:

//第一种格式

foreach ($array as $value){循环体}

//第二种格式

foreach($array as $key => $value){循环体}

//$array表示数组 as $key表示键 $value表示

> 第一种格式会循环遍历给定的 数组。每次循环中,当前数组元素的值被赋给 $value,下一次循环中将会得到下一个数组元素,直到遍历到数组的末尾,停止遍历并退出循环。

> 第二种格式功能与第一种相同,只是除了当前数组元素的键名也会在每次循环中被赋给变量 $key。

感谢老默老师,课程同步在享学微信公众号上,关注公众号,自动回复获取代码笔记资料。

  • 24
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值