1. 流程控制
PHP有三种流程控制结构:顺序结构,分支结构, 循环结构
默认的,代码的执行结构都是顺序结构。代码一行一行从上往下执行。顺序结构是程序代码的最基本结构。
分支结构:一段代码根据不同的条件执行不同的部分
PHP中有两种基本分支结构:if分支结构,switch分支结构
If分支结构语法
-
If( 条件表达式 ){
//当条件表达式返回结果为true的时候,执行里面的语句块
//语句块
}
//如果条件表达式返回结果为false则不执行语句块
以上被称之为最简分支结构
-
标准if结构
If(条件表达式){
//if语句块
}else{
//else语句块
}
-
复杂if结构
If(条件表达式1){
//if语句
}else if(条件表达式2){
//else if语句
}…{
}else{
//else语句块
}
If分支结构原理
在PHP中允许else if和elseif两种语法。两种语法得到的结果完全一致。但是实现原理不同。
Else if:一次只有两个结果,向下的其他比较都是在false之后再次产生,类似二叉树
Elseif:产生一个平行结构,一个多节点的树状结构。
Switch分支结构
语法
Switch($falg){
Case 1:
//语句
Break ;
Case 2:
//语句
Break;
Default:
//语句
Break;
}
结构和运行原理
什么时候使用if结构,什么时候使用switch结构?
大部分的情况下都可以使用。通常会这样来区分使用:
-
如果条件是需要判断大小或者范围的,使用if分支结构
-
如果条件是规定具体值的,那么使用switch
-
不推荐在switch中使用条件判断(比较表达式)
注意:凡是能使用switch的都可以使用if来解决,但是不见得所有if能实现的switch都可以做到。如果switch中case对应的条件是个比较表达式的话,有可能出问题。
循环结构
某一段代码需要重复执行
电脑要知道什么时候结束执行,否则会一直执行下去,死循环。
注意:写任何循环结构的时候都要保证循环不会出现死循环。
PHP提供了多种循环
For, While ,do-while, Foreach
For循环:知道具体循环次数
For(初始条件;条件范围;条件变更){
//循环体
}
While循环:只要满足条件,就可以无限循环
语法:
While(条件表达式){
//循环体
//循环变量的变化
}
Do-while循环:先执行循环体再判断循环条件
语法:
Do{
//循环体
//循环条件变更
}while(条件表达式);
While和do-while的区别:do-while一定会执行一次循环体,而while不一定
Foreach:PHP中专门用来遍历数组(关联数组),后面讲数组的时候再讲。
For模拟while
2. 模板语法
标签语法,因为PHP是需要嵌入到html代码中
为了解决在html语言中出现这种大括号分开写,不美观的情况,可以使用标签语法替代
标签语法:在大括号开始“{”的时候使用冒号“:”替代,在大括号结束的地方使用end+标签+分号“;”
If(){
}
标签语法
If() :
Endif;
For循环
For():
Endfor;
While循环
While():
Endwhile;
Foreach循环
Foreach():
Endforeach;
使用见代码demo06.php
3. 函数
什么是函数?某一段常用的代码块的集合,在使用的时候只需要去调用这个代码块的“入口”,函数名即可。
为什么使用函数?
-
代码的重复利用
-
模块化编程
函数分为两种:系统函数和自定义函数
系统函数:系统为开发人员定义的函数,只需要开发人员调用即可。
自定义函数:开发人员自己定义函数,调用前需要先定义函数。
自定义函数
语法:
function 函数名(参数列表){
函数体;
Return返回值
}
自定义函数的几个要素:函数名,函数体,返回值
如何调用函数?
跟调用系统函数一样
语法:函数名(参数列表);
函数到底是如何被执行的?
函数的调用与函数的定义顺序没有关系,可以在定义函数之前调用函数,前提是彼此都在同一个脚本。
原因何在?
函数的参数: 形式参数 和实际参数
形式参数:定义函数的时候所使用的参数就称之为形式参数,形式参数没有实际值
实际参数:在调用函数的时候传递给形式参数的参数叫做实际参数
代码
函数参数的传递
值传递:拷贝复制,重新开辟内存空间
引用传递:直接传递地址,指向同一个内存空间
函数默认使用的都是值传递,把实际传入的参数的值复制并赋值给形式参数。
但是也可以改变函数的参数方式变成引用传递。
语法
在定义函数的时候,将形式参数添加一个&符号
Function test(&$name){
//在这里对$name进行操作,也就是对外部传入的变量进行操作
}
调用:与普通调用一样
引用传值原理
代码
作用域
什么是作用域?一个变量能够被识别的范围。
PHP中有两个作用域:全局作用域,局部作用域
Js中也有两个作用域:全局作用域,局部作用域
如何在函数内部使用 全局变量 呢?
PHP提供了一种机制去在函数内部调用全局变量
$GLOBALS[‘全局变量名’]
原理:
$GLOBALS会在用户定义全局变量的时候,将变量名和值保存到$GLOBALS数组中,其中变量名对应键名(数组下标),值对应数组的值。
又因为$GLOBALS是超全局变量,所以可以在任何地方使用。
$GLOBALS保存的全局变量的引用,$GLOBALS[‘变量名’] === 变量名
Global 全局变量名
在函数内部建立一个全局变量
global原理
相关文章
本站已关闭游客评论,请登录或者注册后再评论吧~