PHP网站开发项目式教程(微课版)(第2版)任务3 掌握PHP 7的基本语法_第1页
PHP网站开发项目式教程(微课版)(第2版)任务3 掌握PHP 7的基本语法_第2页
PHP网站开发项目式教程(微课版)(第2版)任务3 掌握PHP 7的基本语法_第3页
PHP网站开发项目式教程(微课版)(第2版)任务3 掌握PHP 7的基本语法_第4页
PHP网站开发项目式教程(微课版)(第2版)任务3 掌握PHP 7的基本语法_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PHP网站开发项目式教程(微课版)(第2版)任务3掌握PHP7的基本语法

PHP是一种服务器端脚本语言,编程时需要使用各种语法基础知识。本任务通过多个例题,讲解PHP7的基本语法,包括程序结构、代码注释格式、变量的应用、运算符的应用、输出语句、流程控制语句、数组及日期时间函数的应用等内容。任务3-1掌握PHP语法基础

需要解决的核心问题PHP代码的定界标签是什么?可以使用哪些注释格式?自定义变量时,需要注意的事项有哪些?如何区分字符串内部的变量与其他字符?常用的运算符有哪些?如何使用PHP中的输出语句echo输出各种不同的数据?3.1.1第一个PHP程序

创建文件夹exam,创建页面文件3-1.php,完成如下两个功能。(1)在页面主体中增加一个段落元素,段落内容为“这是HTML元素段落中的文本”。(2)使用PHP的echo语句输出字符串“Helloworld!”。

要求:在浏览器窗口中运行该页面文件,查看源代码并观察源代码的内容。图3-1

在HBuilder指定位置中创建文件夹图3-2

.php中的代码图3-3

.php的运行结果

图3-4

浏览器内部的快捷菜单图3-5

查看网页源代码的结果3.1.2PHP标签与注释

在.php中已经使用过“<?php”和“?>”这对符号,这就是PHP标签。PHP标签可告诉Web服务器PHP代码何时开始、何时结束。这对符号之间的代码都将被解释为PHP代码,PHP标签用来隔开PHP代码和HTML代码。1.PHP标签

在早期的PHP版本中,PHP标签一共有4种可用的形式,分别是标准用法<?php…?>、短标签<?...?>、脚本型标签<scriptlanguage="php">…</script>和ASP型标签<%...%>。但是在PHP7中,除了标准用法,其余3种用法都已经被禁用,读者在编写代码时需要注意。

根据需要,PHP标签在一个程序文件中可以出现多次,因此可以把PHP代码块放置在页面文档的任何位置,如图3-6所示。

图3-6中包含第6~8行和第11~14行两段PHP代码,中间则穿插了HTML代码,即在PHP文件中,PHP代码与HTML代码可以根据需要随意穿插而不受限制。图3-6

包含两段PHP代码的程序2.PHP代码注释格式

PHP代码可以使用3种注释格式,分别是//、/*…*/、#。//:用于写一行注释,注释可以独立成行,也可以放在语句后面。/*...*/:用于写多行大段注释,这种注释格式通常会应用于程序排错过程中,作用是将部分代码屏蔽,执行另一部分代码以方便用户观察运行结果中是否存在错误,从而确定错误的范围。#:用于写一行注释,与//相同。3.1.3PHP中常量的定义1.使用函数define()定义常量

语法格式:define(name,value,case_insensitive)

参数name,必需,表示常量名称。

参数value,必需,表示常量取值。

参数case_insensitive,可选,规定常量的名称是否对大小写敏感。若将其值设置为true,则表示对大小写不敏感。默认值是false,表示对大小写敏感。2.使用关键字CONST定义常量

语法格式:CONST常量名称=常量值;3.函数define()与关键字CONST的区别(1)版本差异。(2)定义位置的区别。(3)对值的表达式支持的差异。3.1.4PHP中的变量

PHP变量是指在程序运行过程中,内容需要根据条件发生变化的量。PHP中的变量包括自定义变量和系统预定义变量两种。1.自定义变量

自定义变量就是由开发人员根据需要自行定义的变量,PHP中的数据类型为弱类型,因此在定义变量时,不需要考虑变量的数据类型。

PHP中有效的变量名由字母或者下画线开头,后面跟任意数量的字母、数字或下画线,PHP变量属于松散的数据类型,使用时需要注意如下几点。变量名前必须以$符号开始,需区分大小写。不必事先定义或声明,可直接使用。使用时,可根据变量所存放常量的值确定类型,并可随意更换值的类型。如果未赋值而直接使用,则变量值为空。2.系统预定义变量

所谓超全局变量,是指变量在一个程序的全部作用域中都可以直接使用,以下这些超全局变量经常被称为系统数组。$GLOBALS:用于在PHP脚本中的任意位置访问全局变量。$_SERVER:用于保存关于报头、路径和脚本位置的信息。$_REQUEST:用于收集HTML表单提交的数据,该组的可信度较低,较少使用。

$_POST:广泛用于接收method="post"的HTML表单提交的数据,也常用于传递变量。$_GET:可用于接收method="get"的HTML表单提交的数据或者超链接提交的数据。$_COOKIE:经由HTTPCookie方法提交至脚本的变量。$_FILES:经由HTTPPOST文件上传而提交至脚本的变量。$_SESSION:当前注册给脚本会话的变量。3.1.5PHP中的运算符

运算符是一种符号,指明要在一个或多个表达式中执行的操作,是构造表达式的工具。PHP的运算符主要包括算术运算符、赋值运算符、比较运算符、逻辑运算符和字符串连接运算符等。1.算术运算符

算术运算符用于对数值型的常量或变量执行基础的加、减、乘、除等运算。

算术运算符包括:加法运算符+、减法运算符-、乘法运算符*、除法运算符/、模运算符%、自增运算符++和自减运算符--。2.赋值运算符

在PHP中,基本的赋值运算符是=,其作用是将右侧表达式的值赋给左侧变量。常用的赋值运算符包括如下几个。=:直接赋值,如x=y。+=:完成加法操作后赋值,如x+=y相当于x=x+y。−=:完成减法操作后赋值,如x=y相当于x=x–y。

*=:完成乘法操作后赋值,如x*=y相当于x=x*y。/=:完成除法操作后赋值,如x/=y相当于x=x/y。%=:完成求余操作后赋值,如x%=y相当于x=x%y。.=:完成字符串连接操作后赋值,如x.=y相当于x=x.y。3.比较运算符

比较运算符用于比较两个值,如果比较的结果为真,则返回true,否则返回false。

比较运算符包括:大于>、小于<、大于等于>=、小于等于<=、相等==、不等!=、全等===和不全等!==。4.逻辑运算符

逻辑运算符用于对布尔型数据进行操作,包括逻辑与运算符&&、逻辑或运算符||、逻辑非运算符!。也可以使用and表示与操作,or表示或操作。

通过逻辑运算符的运算结果是逻辑值true或false。5.字符串连接运算符

PHP程序中的字符串连接运算符有圆点.和逗号,两种,用于将两个或两个以上的字符串连接在一起,也可以用于将字符串与其他类型的数据连接在一起。3.1.6PHP程序的输出语句echo

PHP程序的输出语句有echo、print()、printf()、print_r()、var_dump()等,其中经常使用的是echo,使用该语句可以输出PHP程序中的常量、变量、表达式运算结果、HTML标签、CSS样式代码以及JavaScript脚本代码等任意内容。任务3-2认识PHP中的日期和时间

需要解决的核心问题函数date()中可以使用的格式字母有哪些?各自的作用是什么?什么是时间戳?在date()函数中如何获取指定时间戳对应的日期?函数strtotime()的作用是什么?如何使用该函数获取昨天、明天或者下星期一这种时间的时间戳?3.2.1日期时间函数date()

PHP中的date()函数用于格式化时间或日期。

使用格式:date(格式[,时间戳])

说明:第一个参数是必选的,规定时间戳的格式;第二个参数是可选的,规定时间戳,默认值是当前的日期和时间。若指定了时间戳,则可以使用date()函数获取该时间戳对应的日期。

关于时间戳:时间戳是自1970年1月1日(00:00:00GMT)以来的秒数,它也被称为UNIX时间戳(UNIXTimestamp)。

date()函数的第一个参数用于规定时间戳的格式,也就是如何格式化日期或时间。它使用字母来表示日期和时间的格式。常用的字母如下。Y:返回4位数字的年份值。y:返回2位数字的年份值。m:返回带有前导0的月份值,01~12。n:返回没有前导0的月份值,1~12。d:返回带有前导0的日期值,01~31。j:返回没有前导0的日期值,1~31。

D:返回一星期中的第几天,英文单词的前3个字母(Sun~Sat)。w:返回一星期中的第几天,0~6(其中0表示星期天)。M:返回月份值英文单词的前3个字母。H:返回24小时制的时值,00~23。h:返回12小时制的时值,01~12。i:返回分钟值,00~59。s:返回秒数值,00~59。3.2.2获取当前时间戳函数strtotime()

函数strtotime()用于将任何字符串形式的日期和时间描述、解析为UNIX时间戳,即获取1970年1月1日零时零分零秒以来的秒数。

函数格式:strtotime(string)

参数string可以是日期和时间格式的字符串,如strtotime

('2019-1-1');也可以是表示日期和时间的英文单词,例如,strtotime("today")表示1970年1月1日零时零分零秒到系统当前日期的秒数。

PHP在将字符串转换为日期这方面非常“聪明”,除了today之外,还可以使用tomorrow、nextMonday、+3Days、+6Months等。任务3-3了解流程控制结构

需要解决的核心问题分支语句if包含哪几种结构?各自的特点是什么?两种多分支结构语句if…elseif…else和switch的区别是什么?for循环结构如何?如何使用for循环结构结合日期时间函数输出当前月的月历?while和do…while的区别是什么?

程序结构包括顺序结构、分支结构和循环结构。对于实现顺序结构的程序,不需要任何流程控制语句,只需要按照顺序编写代码、执行代码即可;对于实现分支结构的程序,需要使用分支语句来控制;对于实现循环结构的程序,需要使用循环语句来控制。3.3.1分支结构

分支结构的执行会依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序来执行。设计分支结构时往往需要有逻辑或者关系比较等条件判断的计算,程序执行时需要根据不同的程序流程选择适当的分支语句。PHP提供了if和switch两种流程控制语句来实现分支结构。1.if语句

使用if语句可以设计3种基本的分支结构,分别是单分支结构、双分支结构和多分支结构。(1)单分支结构。

单分支结构就是只有一个分支的程序结构,若指定的条件成立,则执行该分支;若指定的条件不成立,则该分支语句被跳过。格式:if(条件){语句序列}解释:当条件成立时,执行花括号中的语句,否则什么也不做。(2)双分支结构。

双分支结构就是根据条件成立与否给出两个分支的程序结构,若指定的条件成立,则执行其中的一个分支;若指定的条件不成立,则执行另一个分支。双分支结构中的两个分支在程序的一次执行过程中有且只有一个分支能被执行。格式:if(条件){语句序列1}else{语句序列2}解释:当条件成立时,执行语句序列1,否则执行语句序列2。(3)多分支结构。

使用if语句生成的多分支结构,是指程序中有多个前后关联的条件,每个条件成立时都对应一个分支,最后一个条件不成立时也要对应一个分支。也就是说,若有n个条件,则对应n+1个分支。若其中一个条件成立,则执行其对应的分支语句,然后结束分支结构的执行过程;否则要进一步判断下一个条件是否成立,以此类推;若最后一个条件也不成立,则执行第n+1个分支。

多分支结构中的多个分支在程序的一次执行过程中有且只有一个分支能被执行。格式:if(条件1){语句序列1}elseif(条件2){语句序列2}.......elseif(条件n){语句序列n}else{语句序列n+1}解释:若条件1成立,则执行语句序列1,结束程序;若条件2成立,则执行语句序列2,结束程序……若上面的所有条件都不成立,则执行语句序列n+1。2.switch语句

使用switch语句生成的多分支结构,是指给定的表达式在不同情况下会有多种不同的取值,每一种取值对应一个分支,语法格式如下。switch(表达式){case值1:{语句序列1;break;}case值2:{语句序列2;break;}case值3:{语句序列3;break;}……[default:{语句序列n;}]}

解释:在程序执行过程中,要先确定表达式的值,然后根据该值找到相应的case入口。若表达式的取值是值1,则执行语句序列1,之后必须使用break语句结束switch结构;若表达式的取值是值2,则执行语句序列2,之后必须使用break语句结束switch结构;若所有取值都不符合,则直接执行default后面的语句序列n,执行后直接到达switch语句结束处,因此,default分支可以不使用break语句。

多分支结构的if语句和switch语句的区别:if和elseif语句使用布尔表达式或布尔值作为分支条件来控制分支;而switch语句则用于测试表达式的值,该表达式的值必须是一个个离散的值,测试之后将根据测试结果选择执行相应的分支,从而实现分支控制。

选用多分支结构时可以遵循的原则:若要判断的取值范围非常大或者在一个连续的区间范围(如分数范围)内,则最佳方案是使用if…elseif…else语句,也可以经过一些表达式的运算或转换得到离散值之后使用switch语句;若要判断的取值都是离散的,则最佳方案是使用switch语句,也可以使用if…elseif…else语句,只是用起来会比较烦琐。3.3.2循环结构

循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。循环结构的3个要素是循环变量、循环体和循环条件。循环结构中必须指定循环条件,程序根据循环条件成立与否判断是否继续执行循环体。

PHP中的循环语句有for、while、do…while和foreach4种,其中foreach语句用于遍历数组元素。1.for语句

使用for语句可以实现指定循环次数的循环结构,有多种格式可以使用。格式1:for(表达式1;表达式2;表达式3){ 循环体 }

解释:表达式1用于设置循环变量的初值;表达式2用于设置循环条件;表达式3用于完成循环变量的增值或减值,根据3个表达式可以准确判断该循环的循环次数。格式2:表达式1;for(;表达式2;表达式3)//第一个分号不可省略{ 循环体 }

表达式1执行完之后,要执行表达式2,以判断循环条件是否成立。当循环条件成立时,执行循环体中的所有语句,然后执行表达式3。表达式3的执行次数与循环体的执行次数相同,因此也可以将表达式3放在循环体内部最后的位置,得到格式3给定的格式。格式3:for(表达式1;表达式2;){ 循环体 表达式3}

在格式3的基础上,若是将表达式1移至for语句前面,则可得到格式4给定的格式。格式4:表达式1;for(;表达式2;){ 循环体 表达式3}

在实际应用中,为了简化代码,使程序结构更加简洁,一般采用格式1来实现for循环结构。2.while语句

当事先无法确定循环次数时,通常会使用while语句实现循环结构。格式:while(条件){ 循环体}

解释:只要循环条件成立,就执行循环体;若刚开始运行时循环条件就不成立,则循环体一次也不执行。3.do…while语句

当事先无法确定循环次数时,也可以使用do...while语句实现循环结构。格式:do{循环体}while(条件)

解释:do...while语句至少执行一次循环体,之后只要条件成立,就会重复执行循环体。任务3-4理解数组

需要解决的核心问题使用函数array()定义数组时,数组元素的类型、个数是否受限?如何获取数组元素的个数?什么是索引数组?如何定义和访问索引数组?什么是关联数组?如何定义和访问关联数组?如何使用each()函数和foreach语句遍历数组?3.4.1PHP数组的基本概念

数组由多个元素组成,元素之间相互独立,识别或者访问元素需要使用“键”(key)。每个元素可以保存一个数据,相当于一个变量,因此可以将数组看作一组内存空间连续的变量。1.数组的定义

在PHP中定义数组常使用array()函数。array()函数的格式为:数组名=array(…)

用户可以根据需要在括号中给定任意个数、任意类型的数组元素的取值。2.数组长度的获取

对于已经定义好的数组,可以使用count()函数获取数组元素的个数。count()函数的格式为:count(数组名称)3.4.2PHP数组的类型

PHP中的数组包括索引数组、关联数组、混合数组和多维数组。1.索引数组

索引数组是指带有数字索引的数组,使用递增的自然数列0、1、2……作为数组元素的索引,定义数组时,直接在array()函数中设置元素值即可。2.关联数组

关联数组是指带有指定键的数组,数组元素的键名是由用户根据数组

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论