码迷,mamicode.com
首页 > Web开发 > 详细

学有小成-php基础语法-04

时间:2018-08-30 14:26:54      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:问题   require   遇到   实现   自己   分享图片   缺省   语法   splay   

 

 

一流程控制

计算机中的流程控制可分为三种:

顺序结构

程序自上而下的一个执行过程。

 

分支结构

根据某一条件将程序转向不同的分支处执行。

 

循环

计算机最大的特点计算机速度快,计算机主要用于解决重复性的问题。

二分支结构

1if分支

 

①、单分支

 

语法:

 

if(表达式){

 

//语句体

 

}

 

说明:

 

当表达式成功时,执行语句,如果不成功直接结束if结构,继续其后的语句执行。

技术分享图片

②、双分支

语法:

if(表达式A){

语句体A

}else if(表达式B){

语句体B

}

说明:

当表达式A成功时,执行语句体A,如果不成立来判断表达式B,如果表达式B执行语句体B

当任何一个语句体执行结束后,不再会去进行其他表达式的判断。

 

示例:

技术分享图片

③、多分支

语法:

if(表达式A){

语句体A

}else if(表达式B){

语句体B

}else if(表达式C){

语句体C

}else{

缺省语句体

}

说明:

自上而下的判断各个表达式,当某个表达式成立时,执行相应的语句体

语句体执行结束后,不会再判断其他的表达式。

当所有的表达式都不成立,执行缺省语句体。

技术分享图片

技术分享图片

2switch结构

当一个问题需要判断的条件比较多时,Php又提供了一个switch分支结构。

语法:

switch(变量){

case 1:

语句体1

break;

case 2:

语句体2

break;

case 3:

语句体3

break;

default:

缺省语句体

}

说明:

根据switch后的变量与case后的值的匹配情况,将程序转向不同的语句体执行。

break可以省略。

当一个语句体执行结束后,如果没有遇到break,则会执行其后的语句体,不会判断其后case的值。

示例:

技术分享图片

ifswitch的区别:

if结构的条件可以表示一个范围。

switch结构主要用于表示一个具体的值。

三循环结构

1for循环

 

循环结构主要是用于解决重复性的问题。

 

语法:

 

for(循环控制变量初始化;表达式;循环控制变量的更改){

 

//循环体

 

}

 

说明:

 

循环控制变量初始化;表达式;循环控制变量的更改   循环3要素。

 

a、首先执行循环控制变量初始化,此步仅执行1次。

 

b、判断表达式是否成立,如果不成立直接结束循环体,继续其后的语句执行。

 

c、如果成立,执行循环体。

 

d、循环体执行结束后,执行循环控制变量的更改

 

e、往复执bcd,直到循环控制变量的值主表达式不成立时,结束循环结构。

 

 

 

对于for循环结构,要求大家能够作到以下几点:

 

能够使用for循环,模拟任意次数的循环。

 

能够使用循环控制变量来模拟数据或规则

 

循环嵌套:

技术分享图片

提示:

双层循环的嵌套主要解决具有行列特性的问题。

 

使用程序语言解决问题的思路:

 

首先要判断使用何种流程控制。

 

再将问题中的条件转换为计算机能够表达的式子。

 

示例:

技术分享图片

课堂案例:

百钱百鸡,100文钱买100只鸡,公鸡51只,母鸡31只,小鸡13只。

穷举法:

技术分享图片

2while循环

 

语法:

while(表达式){

//循环体

}

说明:

只要是循环必须有3要素组成。但是while循环的语句结构中仅出现了表达式。

另外两个要素需要自己设计。

首先判断表达式是否成立?

不成立,直接结束循环结构,继续其后的语句执行。

成立,执行循环体,循环体执行结束后,再来判断表达式。循环往复的执行。直接到表达式不成立。

示例:

技术分享图片

forwhile的区别

对于for循环结构,主要用于循环次数已知或根据某一条件可以确定。

l while用于循环次数未知的循环。

 

3do...while

语法:

do{

//循环体

}while(表达式)

说明:

首先执行循环体

循环体执行结束后,判断表达式是否成立,

如果不成立,直接结束循环结构,继续其后的语句执行,

如果成立,再执行循环体。往复的执行,直到表达式不成立。

示例:

技术分享图片

4循环的结束与退出

①、continue

语法:

continue n;

说明:

n的取值是一个整数,如果省略默认是1

n主要是用在循环嵌套的情况下。

结束当前循环结构的本次循环,继续上n层循环结构的下一次循环。

示例:

技术分享图片

技术分享图片

②、break

语法:

break n;

说明:

n的取值是一个整数,如果省略默认是1

n主要是用在循环嵌套的情况下。

直接结束上n循环循环结构

示例:

技术分享图片

四流程控制语句的标签语法

php在将php代码嵌入到html文档时,又提供了一种标签语法。

技术分享图片

①、if标签语法:

标准语法:

<?php if(...):?>

<?php endif?>

简化语法:

<?php if(...){?>

 

<?php }?>

 

②、for标签语法

标准语法:

<?php for():?>

 

<?php endfor?>

简化语法:

<?php for(){?>

 

<?php }?>

 

③、while的标签语法

标准语法:

<?php while():?>

 

<?php endwhile?>

简化语法

<?php while(){?>

 

<?php }?>

五文件载入

1介绍

在实际开发过程中,经常会在一个php文件中引入其他的文件。

被引入的文件可以是html也可以是php文件。

2语法

 

①、require

 

require(文件名)

 

require_once(文件名)

 

②、include

 

include(文件名)

 

include_once(文件名)

 

示例:

技术分享图片

在引用文件时,主要有两种使用目的:

当前文件(php)有数据,想在被引用的文件(html)中显示。

技术分享图片

在当前文件(php)中想使用,另一个文件(php)中的功能性代码:

技术分享图片

3引入路径的问题

在实现项目中,对于html文件,我是不允许用户直接请求,而是指向一个php文件,让php文件来引处这个html文件。

当一个php文件引入一个html文档时,html文件本身也会引入一些其他的文件,如:图片文件、css文件、js文件。这时会发生路径更改的问题。路径要以当前php文件所在的路径为起点。

技术分享图片

技术分享图片

4include和require的区别

include 在引入文件时,如果被引入的文件不存在则会报错,但程序还会继续向下执行。

require在引入文件时,如果被引入的文件不存在,则会上断程序的执行。

 

经验法则:

require一般用于引入php文件。因为php里面一般书写的是功能性的代码。

include一般用于引入html文档。

 

includerequire  VS  include_concerequire_once的区别

include_oncerequire_once每次在引入文件时,都会检查所要引入的文件之前有没有被引入过,如果有引入过就不会再引入。

includerequire没有这样的检查过程。

5__DIR__\__FILE__

 

__FILE__ 用于获取文件所在的完整文件名。

 

__DIR__ 用于获取文件所在的路径。

 

__FILE____DIR__并不会被引入后所更改。永远代码__FILE____DIR__所在的文件的文件名与文件夹名。

 

 六错误处理

1错误的分类

①、编译错误

在编译的过程中发生的错误就编译错误,编码错误是最容易解决的。很多是由于书写错误。

技术分享图片

②、执行错误

在编译通过后,在执行阶段发生的错误。此种错误一旦发生,会根据错误的等级,来决定是否中断程序的执行。

③、逻辑错误

由于程序的逻辑不严谨,而产生的错误。此种错误是最难排查的。程序可以正常执行,但最终的结果并不是我们所期望的。

2错误代码

 php的错误处理机制中,每一种错误都使用了一个错误标识,错误标识是常量的形式存在。

 

①、获取错误代码

技术分享图片

②、系统错误

E_ERROR 致命错误,一旦发生就会中断程序的执行

E_WRRING 警告错误,一旦发生并不会中断程序的执行,

E_NOTICE 提示错误,一旦发生并不会中断程序的执行,

E_PARSE 编译错误,一旦发生就会中断程序的执行

③、自定义错误

E_USER_ERROR 用户级的致命错误,一旦发生就会中断程序的执行

E_USER_WRRING 用户级的警告错误,一旦发生并不会中断程序的执行,

E_USER_NOTICE 用户级的提示错误,一旦发生并不会中断程序的执行,

④、所有的错误

E_ALL

3错误的触发

 

①、系统错误的触发

程序员无法干涉系统错误的触发,系统错误由php自已检测并触发的。

技术分享图片

②、自定义的错误

trigger_error();

语法:

trigger_error(msg,type);

说明:

msg 错误描述信息

type 自定义错误的代码(E_USER_ERRORE_USER_WARNINGE_USER_NOTICE)

示例:

技术分享图片

技术分享图片

提示:

使用错误处理机制的好处是,可以将错误记录起来。默认会被记录到apache/logs/error.log文件中。

4错误的控制设置

 

php错误控制可以在php.ini中进行。我们可以控制错误是否显示,还可以控制显示哪一类的错误。

①、控制是否显示错误

display_errors=on 显示错误

display_erros =off 关闭错误的显示

 ②、控制显示哪一类错误

 error_reporting = 

 技术分享图片

5错误的日志文件设置

我们还可以控制是否记录错误,以及错误日志的记录位置。

①、是否记录记录

log_errors=on 记录错误

log_errors=off 不记录错误

 

②、错误记录的位置

如果没有设置error_log默认是记录到apache的错误日志中\logs\error.log

error_log=syslog 会记录到操作系统的日志中

error_log=文件名 记录到自定义的位置

技术分享图片

 

学有小成-php基础语法-04

标签:问题   require   遇到   实现   自己   分享图片   缺省   语法   splay   

原文地址:https://www.cnblogs.com/Php1989/p/9559649.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!