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

一流程控制

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

顺序结构

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

分支结构

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

循环

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

二分支结构

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的值。

示例:

if与switch的区别:

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

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

三循环结构

1for循环

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

语法:

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

//循环体

}

说明:

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

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

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

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

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

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

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

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

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

循环嵌套:

提示:

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

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

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

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

示例:

课堂案例:

百钱百鸡,100文钱买100只鸡,公鸡5文1只,母鸡3文1只,小鸡1文3只。

穷举法:

2while循环

语法:

while(表达式){

//循环体

}

说明:

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

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

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

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

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

示例:

for与while的区别

l 对于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文档。

include、require  VS  include_conce、require_once的区别

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

include、require没有这样的检查过程。

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_ERROR、E_USER_WARNING、E_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=文件名 记录到自定义的位置

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

时间: 2024-11-05 12:25:56

学有小成-php基础语法-04的相关文章

学有小成-mysql数据库-01

一数据库简介 1概念 数据库中持久存储数据的介质. 计算机中的数据库,就是能够高效的组织与管理数据的介质(内存.硬盘) 2数据库的发展史 网状数据库 是指以处理记录类型为节点的网络模型来存储与管理数据的. 层次数据库 层次数据库是网状数据库之后的一种数据库,将数据组织成一种有序有向的树状结构. 关系数据库 就使用二维表模型来存储与管理数据库的. 3关系型数据库(纯理论) 关系型数据库就是使用关系模型来组织与管理数据的数据库. 关系模型就是二维表模型,而一个关系型数据库是由多个二维表及表之间的联系

从0开始学大数据-Java基础语法(2)

我们从零开始学习大数据技术,从java基础,到Linux技术涉猎,再深入到大数据技术的Hadoop.Spark.Storm技术,最后到大数据企业平台的搭建,层层递进,由点到面!希望技术大牛能过来指导学习. 上一节了解Java的发展史和基本操作,本节我们开始学习Java语言的基础语法,将会围绕以下几个知识点进行展开学习: 关键字 标识符 注释 常量和变量 运算符 语句 函数 数组 PS:本节先学习前面4个知识点. 1.关键字 关键字的概述 · 被Java语言赋予特定含义的单词 关键字的特点 · 组

前端学PHP之正则表达式基础语法

前面的话 正则表达式是用于描述字符排列和匹配模式的一种语法规则.它主要用于字符串的模式分割.匹配.查找及替换操作.在PHP中,正则表达式一般是由正规字符和一些特殊字符(类似于通配符)联合构成的一个文本模式的程序性描述.正则表达式有三个作用:1.匹配,也常常用于从字符串中析取信息:2.用新文本代替匹配文本:3.将一个字符串拆分为一组更小的信息块.本文将详细介绍PHP中的正则表达式基础语法 [注意]关于javascript的正则表达式的详细信息移步至此 历史 在PHP中有两套正则表达式函数库,两者功

零基础学UI小白锐变之路全能UI/UE设计师

课程简介:UI设计入学门槛较低,其所见即所得,大大增强了学习中的趣味性.而“互联网+”与O2O模式的大趋势,使之前景广阔超乎想象.行业内人才供不应求,设计人才缺口高达上千万,就业无忧.因人才的供不应求致使平均薪资水涨船高,最高的可达月薪30000+,可谓钱途无量.选择我,将您打造成会代码的全能设计师,领略前所未有的高薪体验. 学完后可选择从事4A广告公司平面设计工作,品牌形象设计工作及高端印前设计.电商美工.电商装修设计.网页设计.网页美工.网页制作.移动应用界面设计师.图形界面设计师.UI设计

小白入门必学Python基础语法

最近开发中用到Python比较多,所以将Python的基础语法总结出来供Python入门者学习. Unicode Unicode(统一码.万国码.单一码)是计算机科学领域里的一项业界标准,包括字符集.编码方案等.Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言.跨平台进行文本转换.处理的要求.Unicode规定所有的字符和符号最少由16位来表示(2个字节),即:2**16=65536 UTF-8 UTF-8(8-bi

javascript中正则表达式的基础语法

× 目录 [1]定义[2]特点[3]元字符[4]转义字符[5]字符组[6]量词[7]括号[8]选择[9]断言[10]模式[11]优先级[12]局限性 前面的话 正则表达式在人们的印象中可能是一堆无法理解的字符,但就是这些符号却实现了字符串的高效操作.通常的情况是,问题本身并不复杂,但没有正则表达式就成了大问题.javascript中的正则表达式作为相当重要的知识,本文将介绍正则表达式的基础语法 定义 正则表达式(Regular Expression)是一门简单语言的语法规范,是强大.便捷.高效的

老司机学python篇:第一季(基础速过、机器学习入门)

详情请交流  QQ  709639943 00.老司机学python篇:第一季(基础速过.机器学习入门) 00.Python 从入门到精通 78节.2000多分钟.36小时的高质量.精品.1080P高清视频教程!包括标准库.socket网络编程.多线程.多进程和协程. 00.Django实战之用户认证系统 00.Django实战之企业级博客 00.深入浅出Netty源码剖析 00.NIO+Netty5各种RPC架构实战演练 00.JMeter 深入进阶性能测试体系 各领域企业实战 00.30天搞

unit 1.基础语法

本章内容 1.python大致思维导图构想   2.安装环境   3.基础语法 Python大致思维导图构想 该学习之路的旅程,大体将会参照Alex老师的Python自动化全栈开发的视频的路线走.正如我前言所讲,我开始编写自己的博客是受Alex的启发.但是我可能不会完全按照视频的天数来编写博客,因为我写博客要的不仅是学后的知识整理,还希望能够帮我复盘,快速回忆知识点.因为IT行业要不断的更新,但是总不能不能捡一个扔一个吧.我也是刚刚开始,如果你也刚开始或则发现我说的你也认同,那么让我们一起探寻一

Java基础语法(二)——数据类型扩展与运算符详解

一.前言 ? 上文我们讲解了有关java编程基础语法的变量与关键字的知识点,本文将主要对java基础语法中的运算符进行讲解. ? 在讲解语法之前我们先来讲一下真正的开发环境. 二.Java集成开发环境 2.1eclipse的使用方法 ? 之前我们在体验java编程或者写小的demo的时候,都是命名一个.java的源文件,在dos界面中编译和运行,但是这样给人的感觉并不友好,为了解决这一问题,一些大佬便开发了与各种语言对应的集成开发环境,其中包含文本编辑处理,自动编译,简化运行,随时进行代码调试.