目录
PHP流程控制
顺序结构:
分支结构:
Switch分支:
PHP循环结构
for循环
while循环
do-while循环
while和do-while的区别:
循环控制
流程控制代替语法
PHP文件包含
PHP文件包含的作用
PHP文件包含的四种形式
PHP文件加载
文件加载原理
文件加载路径
文件嵌套包含
include和require的区别
PHP流程控制
流程控制:即代码的执行的方向
顺序结构:代码从上到下,顺序执行。
分支结构:给一个条件,同时有多种可执行代码块,然后会根据条件执行某一段代码
循环结构:在某个条件控制的范围内,指定的代码快可以重复执行
顺序结构:
从上到下,依次执行
分支结构:
if分支:
给定一个条件,同时为该条件设置多种情况,然后通过条件判断来实现具体的代码块。
if-else格式
if(条件表达式)
{
//满足条件执行语句
}
else
{
//不满足条件执行语句
}
if-elseif-else格式
if(条件表达式)
{
//满足条件执行语句
}
elseif(条件表达式)
{
//if条件如果不满足会来判断这个条件是否满足
}
else
{
//不满足条件执行语句
}
Switch分支:
有一组情形存在,通过一个条件,有很多值,但是每个值都会对应着不同的代码进行执行。 Switch判断方式:是将条件放到分支结构的内部进行判断。
Switch语法格式:
switch(条件表达式)
case 1:
//执行的代码段1
break;
#这是是让匹配到的结果以后直接退出,不再匹配,如果不加break,它会继续向下匹配。
case 2:
//执行的代码段2
...
default
//都没有匹配到的执行的代码段n
PHP循环结构
代码段在一定的控制下,可以多次执行
for循环
for循环的语法格式:
for(条件表达式1,条件表达式2,条件表达式3)
{
循环体
}
//条件表达式1:定义初始条件
//条件表达式2:边界判定,限制循环执行的次数
//条件表达式3:用来执行条件变换(自操作)
例如使用for循环输出0-9十个数字
<?php
for ($i = 1; $i <= 10; $i++) {
echo $i;
}
echo '<br/>';
for ($i = 1; ; $i++) {
if ($i > 10) {
break;
}
echo $i;
}
echo '<br/>';
$i = 1;
for (;;) {
if ($i > 10) {
break;
}
echo $i;
$i++;
}
echo '<br/>';
for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
?>
while循环
语法格式:
条件初始化
while(条件表达式)
{
循环体
//循环条件的变化
}
//条件表达式就是边界条件
例如:
<?php
$i=1;
while($i<=10)
{
echo $i,'<br/>';
$i++;
}
?>
do-while循环
do-while语法格式:
初始化变量
do
{
循环体
//循环条件改变
}
while(条件表达式)
while和do-while的区别:
while首先进行条件匹配然后执行循环体,有可能出现一次就条件不满足,那么就会直接失败(循环体一次都不执行)。DO-while就是先将循环体执行一次,然后再判断条件(至少会执行一次)。
循环控制
在循环内部对循环本身进行控制
中断控制:重新开始循环,循环体中还有其他内容,也再执行。
continue:当前自己循环后面内部不再执行,同时内部循环如果还有循环体也不在执行,重新来过
终止控制:循环直接结束
break:当前自己循环结束,同时外部也结束(如果还有外部不受影响)
流程控制代替语法
流程控制代替语法:分支和循环的替代语法
PHP本身是嵌入到HTML中的脚本语言,需要在HTML中书写一些关于判断或者循环的结构语法,必须符合PHP标签规范,需要HTML与PHP进行混搭,如果使用原始的PHP代码那么会非常不美观。
需求:打印一个九九乘法表,使用表格显示。
<table border=1>
<?php for($i=1;$i<10;$i++){?>
<tr>
<?php for($j=1;$j<=$i;$j++){?>
<td>
<?PHP echo $i .'*' . $j . '=' . $j*$i;?>
</td>
<?php }?>
</tr>
<?php } ?>
</table>
在PHP书写到HTML中的这些大括号很不美观,所以php提供了一种替换机制,让其可以不用书写大括号
for(;;){---->for(;;):
}------------>endfor;
PHP文件包含
文件包含:在一个PHP脚本中,去将另外一个PHP文件包含进来,去合作完成一件事情
PHP文件包含的作用
文件包含的意义:
1、要么使用被包含文件中的内容,实现代码的共享(重用);向上包含;在当前脚本要用某个代码之前包含别的文件
2、要么自己有的东西可以给别人使用,实现代码的共享(重用);向下包含;在自己有某个东西的时候,需要别的脚本来显示
作用:分工合作,每个脚本做的事情是不一样的,因此可以使用协作的方式共同完成一件事情
PHP文件包含的四种形式
include:包含文件
include_once:系统会自动判断文件包含过程,是否已经包含过(一个文件最多只能包含一次)
require:与include一样
require_once:与include_once一样
例如:
include1.php:
<?php
//被包含文件
define PI 3.14;
$a=100;
echo $a;
?>
include2.php:
<?php
//包含文件:使用数据
include 'include1.php';
//引入被包含文件
echo $a,PI;
?>
这样include2就可以使用include1中的变量
PHP文件加载
文件加载原理
PHP代码的执行流程:
1、读取代码文件(PHP程序)
2、编译:将PHP代码转换为字节码(生成opcode)
3、zendengine来解析opcode,按照字节码去进行逻辑运算
4、转换为对应的HTML代码
文件加载原理:
1、在文件加载(include或者require)的时候,系统会自动的讲包含文件中的代码相当于嵌入到当前文件对应的代码中
2、加载位置:在哪里加载,对应的文件中的代码嵌入的位置就是对应的include的位置;
3、在PHP中被包含的文件是单独进行编译的。
PHP代码在编译的过程中如果出现了语言错误,那么就会失败;但是如果被包含文件有错误的时候,系统难过会在执行到包含include这条语句的时候才会报错;
文件加载路径
文件加载的时候需要指定文件路径,才能保证PHP正确的找到对应的文件
文件加载的路径包含两大类:
绝对路径:
-
从磁盘的根目录开始(本地决绝路径)
windows:盘符C:/路径
Linux:/路径
-
从网站的根目录开始(网络绝对路径)
/:相对网站主机名字对应的路径
相对路径:从当前文件所在目录开始的路径
.| ./:表示当前文件夹
../:上级目录(当前文件夹的上一级目录)
绝对路径和相对路径的加载区别:
1、绝对路径效率偏低,但是相对安全;
2、相对路劲相对效率偏高,但是容易出错;
文件嵌套包含
文件嵌套包含:一个文件包含另外一个文件,同时被包含的文件又包含了另外一个文件。
例如:
include3.php
<?php
//包含文件:使用数据
$a=100;
const PI 99;
?>
include4.php
<?php
//包含文件:使用数据
include 'include3.php';
//引入被包含文件
echo $a,PI;
?>
include5.php
<?php
//包含文件:使用数据
include 'include4.php';
//引入被包含文件
echo $a,PI;
?>
嵌套包含就很容易会出现相对路径出错的问题:相对路径会因为文件的包含而改变。
include和require的区别
include和include_once的区别:
include系统会碰到一次,执行一次;如果对同一个文件进行多次加载,那么系统就会执行多次。
include_once:系统碰到多次,也只会执行一次。
require和include的区别:
本质一样的,只是在遇到错误时,报错的严重形式不同;
include的错误级别较轻;如果前面代码出错,后面代码会执行
require的错误级别较重;如果前面代码出错,后面代码不再执行