FavoriteLoading
0

我的php学习第二十六天——流程控制

流程控制

PHP有三种流程控制结构:顺序结构,分支结构,循环结构

默认的,代码的执行结构都是顺序结构。代码一行一行从上往下执行。顺序结构是程序代码的最基本结构。

分支结构:一段代码根据不同的条件执行不同的部分

PHP中有两种基本分支结构:if分支结构,switch分支结构

If分支结构语法

  1. If(条件表达式){

//当条件表达式返回结果为true的时候,执行里面的语句块

//语句块

}

//如果条件表达式返回结果为false则不执行语句块

以上被称之为最简分支结构

笔记3759

  1. 标准if结构

If(条件表达式){

//if语句块

}else{

//else语句块

}

笔记3808

  1. 复杂if结构

If(条件表达式1){

//if语句

}else if(条件表达式2){

//else if语句

}…{

 

}else{

//else语句块

}

笔记3893

If分支结构原理

笔记3904

在PHP中允许else if和elseif两种语法。两种语法得到的结果完全一致。但是实现原理不同。

Else if:一次只有两个结果,向下的其他比较都是在false之后再次产生,类似二叉树

Elseif:产生一个平行结构,一个多节点的树状结构。

 

Switch分支结构

语法

Switch($falg){

Case 1:

//语句

Break;

Case 2:

//语句

Break;

Default:

//语句

Break;

}

结构和运行原理

笔记4147

什么时候使用if结构,什么时候使用switch结构?

大部分的情况下都可以使用。通常会这样来区分使用:

  1. 如果条件是需要判断大小或者范围的,使用if分支结构
  2. 如果条件是规定具体值的,那么使用switch
  3. 不推荐在switch中使用条件判断(比较表达式)

注意:凡是能使用switch的都可以使用if来解决,但是不见得所有if能实现的switch都可以做到。如果switch中case对应的条件是个比较表达式的话,有可能出问题。

循环结构

某一段代码需要重复执行

电脑要知道什么时候结束执行,否则会一直执行下去,死循环。

注意:写任何循环结构的时候都要保证循环不会出现死循环。

PHP提供了多种循环

For,while,do-while,foreach

For循环:知道具体循环次数

For(初始条件;条件范围;条件变更){

//循环体

}

笔记4526

While循环:只要满足条件,就可以无限循环

语法:

While(条件表达式){

//循环体

//循环变量的变化

}

笔记4591

Do-while循环:先执行循环体再判断循环条件

语法:

Do{

//循环体

//循环条件变更

}while(条件表达式);

笔记4591

While和do-while的区别:do-while一定会执行一次循环体,而while不一定

笔记4709

Foreach:PHP中专门用来遍历数组(关联数组),后面讲数组的时候再讲。

For模拟while

笔记4763

模板语法

标签语法,因为PHP是需要嵌入到html代码中

<?php  for($i=0;$i<10;$i++){ ?>

<tr><td><?php echo $i;?></td></tr>

<?php }?>

为了解决在html语言中出现这种大括号分开写,不美观的情况,可以使用标签语法替代

标签语法:在大括号开始“{”的时候使用冒号“:”替代,在大括号结束的地方使用end+标签+分号“;”

If(){

}

标签语法

If() :

Endif;

For循环

For():

Endfor;

While循环

While():

Endwhile;

Foreach循环

Foreach():

Endforeach;

使用见代码demo06.php

 

函数

什么是函数?某一段常用的代码块的集合,在使用的时候只需要去调用这个代码块的“入口”,函数名即可。

为什么使用函数?

  1. 代码的重复利用
  2. 模块化编程

函数分为两种:系统函数和自定义函数

系统函数:系统为开发人员定义的函数,只需要开发人员调用即可。

自定义函数:开发人员自己定义函数,调用前需要先定义函数。

自定义函数

语法:

function 函数名(参数列表){

函数体;

Return返回值

}

自定义函数的几个要素:函数名,函数体,返回值

笔记5323

如何调用函数?

跟调用系统函数一样

语法:函数名(参数列表);

笔记5358

函数到底是如何被执行的?

笔记5374

函数的调用与函数的定义顺序没有关系,可以在定义函数之前调用函数,前提是彼此都在同一个脚本。

原因何在?

笔记5429

函数的参数:形式参数和实际参数

形式参数:定义函数的时候所使用的参数就称之为形式参数,形式参数没有实际值

实际参数:在调用函数的时候传递给形式参数的参数叫做实际参数

笔记5515

代码

笔记5520

函数参数的传递

值传递:拷贝复制,重新开辟内存空间

引用传递:直接传递地址,指向同一个内存空间

函数默认使用的都是值传递,把实际传入的参数的值复制并赋值给形式参数。

但是也可以改变函数的参数方式变成引用传递。

语法

在定义函数的时候,将形式参数添加一个&符号

Function test(&$name){

//在这里对$name进行操作,也就是对外部传入的变量进行操作

}

调用:与普通调用一样

引用传值原理

笔记5732

代码

笔记5738

作用域

笔记5745

什么是作用域?一个变量能够被识别的范围。

PHP中有两个作用域:全局作用域,局部作用域

笔记5792

Js中也有两个作用域:全局作用域,局部作用域

笔记5818

如何在函数内部使用全局变量呢?

PHP提供了一种机制去在函数内部调用全局变量

$GLOBALS[‘全局变量名’]

原理:

$GLOBALS会在用户定义全局变量的时候,将变量名和值保存到$GLOBALS数组中,其中变量名对应键名(数组下标),值对应数组的值。

又因为$GLOBALS是超全局变量,所以可以在任何地方使用。

$GLOBALS保存的全局变量的引用,$GLOBALS[‘变量名’] === 变量名

笔记6027

Global 全局变量名

在函数内部建立一个全局变量

笔记6069

global原理

欢迎分享本文,转载请保留出处!—重蔚自留地 站长邮箱:951076433@qq.com