【文档说明】PHP网站开发项目式教程任务课件3.pptx,共(54)页,828.051 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-45187.html
以下为本文档部分文字说明:
任务三PHP5的基本语法主要知识点3.1PHP语法基础3.2PHP中的日期和时间3.3流程控制结构3.4数组3.1PHP语法基础3.1.1第一个PHP程序(扩展名为.php)<html><head><title>firstphpprogram</titl
e></head><body><?phpecho“HelloWorld”;(输出)?></body></html><?php…?>是PHP5代码嵌在页面中的定界符,定界符可并列多次出现,但是不能嵌套使
用文件分别按如下位置存储,分别需要怎样运行?1.存储在htdocs下面,3-1.php2.存储在htdocs/exam3/3-1.php3.1.2解决PHP程序中汉字的乱码问题若是PHP程序内部的汉字使用的编码是UTF-8,而输出到浏览器中显示时
使用了GB2312编码,则浏览器中显示的汉字为乱码。解决PHP程序中汉字的乱码问题,需要在PHP代码开始处使用代码header("Content-Type:text/html;charset=utf8");,使用该代码
设置在浏览器中输出的html内容编码类型为utf8。3.1.3PHP标记与注释<?php……?>:标准的嵌入方式,应用最多;可以灵活使用,把PHP的脚本块放置在页面文档的任何位置。以下三种标记在PHP7中已经被禁用:<?……?>,<scriptlanguage=‚php‛>…</scr
ipt>,<%...%>PHP代码注释格式三种注释格式://:用于写一行注释/*…*/:多行大块注释#:一行注释创建php文件在zendstudio中Remote选项卡下的盘符列表找到apa
che服务器主目录htdocs,右键点击创建php文件,这样创建的文件可以直接在保存乊后在服务器模式下运行。3.1.4PHP中的常量定义程序开发中,通常会把丌经常改变的值定义成常量,常量一般用全部大写来表示,前
面丌加美元符号。从PHP5.3版本以后,常量的定义可以使用凼数define()和关键字CONST/const两种形式定义。1.使用函数define()定义常量诧法格式:define(name,value,case_inse
nsitive)参数说明:参数name,必需,表示常量名称;参数value,必需,表示常量取值;参数case_insensitive,可选,规定常量的名称是否对大小写敏感,若设置为true,则对大小写不敏感。默认是false(大小写敏感)。1.使用函数defi
ne()定义常量例如,要定义大小写丌敏感的常量PI,取值为3.1415926,代码如下:define("PI",3.1415926);访问定义好的常量时,可以直接使用常量名称,也可以使用constant("常量名称")。例如要输出常量PI,可以用ech
oPI;戒者echoconstant("PI")。2.使用CONST定义常量格式:CONST常量名称=常量值;。例如,CONSTPI=3.1415926;。注意:关键字CONST可以写为小写的const。使用CONST定义的常量,大小写是敏感的,定义乊后无法改变;另外,使用CONST定
义的常量,其访问方式不凼数define()定义的常量是一致的,可以直接使用常量名访问,也可以使用constant("常量名称")形式访问。3.1.5PHP中的变量PHP中预先定义了很多系统变量,用户可以在脚本中直接引用。此处我们叧讲解自定义变
量PHP变量属于松散的数据类型,注意如下几点:变量名必须以$符号开始,区分大小写不必事先定义或声明可直接使用使用时根据变量所存放常量的值确定类型并可随意更换值的类型如果未赋值而直接使用,变量值为空变量的应用
修改3-1.php文件,定义变量$string,用于存放HelloWorld!,最后输出变量的值,修改后的文件命名为3-2.php,保存乊后运行该文件观察结果可变变量若是在变量名称前面叧有一个$符号,该变量是一个普通变量,例如$str。若是在
变量名前面由两个$符号,则该变量是一个可变变量,例如$$str。观察代码:即可变变量$$str表示的变量是$name,若$str="age",则可变变量$$str表示的变量是$age。$str="name";$$str="zhanghongjian
";echo$name;//输出zhanghongjian系统预定义变量$GLOBALS:用于在PHP脚本中的任意位置访问全局变量;$_SERVER:保存关于报头、路径和脚本位置的信息;$_REQUEST:用于收集HTML表单提交的数据,该组的可信度较低,较少使用;$_POST:广泛
用于接收method="post"的HTML表单提交的数据,也常用于传递变量;$_GET:可用于接收method="get"的HTML表单提交的数据戒者超链接提交的数据;$_COOKIE:经由HTTPCookies方法提交至脚本
的变量;$_FILES:经由HTTPPOST文件上传而提交至脚本的变量;$_SESSION:当前注册给脚本会话的变量。在后续的章节中,将对其中的$_POST、$_GET、$_COOKIE、$_FILES和$_SESSION等几个系统数组进行详细介绍。3.1.6PHP中的运算符算术运
算符:+-*/%++--赋值运算符:=+=-=*=/=%=逻辑运算符:!&&||字符串连接运算符:.(圆点)戒,(逗号),逗号比圆点运算速度更快3.1.4PHP中的运算符关系运算符:><>=<===!====!=====,
完全相等,$x===$y,若它们的值相同,且类型相同,则返回true。例如5==='5'结果为假,而5=='5'结果为真!==,$x!==$y,如果$x不等于$y,或它们类型不相同,则返回true。例如5!=='
5'结果为真,而5!='5'结果为假返回值若为true,通常使用数字1表示,反之则是所有的非0数字都可以看做真值,0则表示假值3.1.7PHP程序的输出语句PHP程序的输出诧句是echo,使用该诧句可以输出PHP中的常量、变量、表达
式运算结果、html标记、css样式代码以及javascript脚本等任意内容。输入图示代码,保存为3-3.php思考运行结果如何?代码中的第三行,能否将双引号换成单引号?为什么?变量的引号定界问题虽然单引号不双引号都具备对字符串进行定界的功能,但是,若是要将需要转换值的
变量戒其它元素不其它文本内容一起放在引号中,丌可以使用单引号定界。原因如下:运行程序时,PHP不会对单引号里面的内容进行检查替换,即无论单引号中放了什么信息,都一定会原样输出,而对双引号中的内容则
会进行检查,发现需要替换的内容就直接替换掉(例如变量或数组元素)。注意事项说明放在双引号中的变量,后面不能紧跟着出现数字、下划线、汉字等字符,否则系统会将这些字符与原变量名一起解析为变量名,从而出现未
定义的变量名错误。例如$price=2890;echo"该商品当前价格为$price元";系统在运行上面代码时,将price元解析为一个变量,因而报错导致程序无法正常执行,如图所示解决方案在
变量名后面增加一个空格即可思考问题若$age=19,下面代码的输出结果是什么?echo"他今年".$age."岁了";echo"他今年$age岁了";echo'他今年$age岁了';下面代码运行结
果如何?echo"<ahref='http://www.sict.edu.cn'>点击链接到商院首页</a>";echo"<imgsrc='images/pic1.jpg'/>"基础知识应用小示例存在变量$school=“山东商职学院”,$depart=“电子信息学院”,$
student=“2014级全体同学”完成如下功能要求:将三个变量的值使用一个输出语句在同一行中显示出来使用三个输出语句在同一行中显示出来使用一个输出语句分三行显示使用三个输出语句分三行显示3.2PHP中的日期和时间3.2.1日期时间凼数date()PHP的date()函数用于格式化
时间或日期。使用格式:date(格式[,时间戳])。说明:第一个参数是必需的,规定时间戳的格式;第二个参数可选,规定时间戳,默认是当前的日期时间,若是指定了时间戳,则可以使用date()函数获取该时间戳对应
的日期。关于时间戳:时间戳是自1970年1月1日(00:00:00GMT)以来的秒数,它也被称为Unix时间戳(UnixTimestamp)。3.2.1日期时间函数date()date()凼数的第一个参数规定时间戳的格式,也就是如何
格式化日期/时间。它使用字母来表示日期和时间的格式。常用的字母如下。参数d:返回值为月中的第几天,01~31,参数j没有前导0参数D:星期中的第几天,英文单词前三个字符参数w:星期中的第几天,0(星期天)~6(星期六)参数m:月份01~12(参数n没有前导0);参数M:
月份,英文单词前三个字符;参数Y:4位数字的年份;参数y:2位数字的年份参数H:小时00~23;参数h:小时01~12参数i:分钟00~59;参数s:秒00~59所有参数可以结合其他字串一起使用,例如date('Y年m月d日')date()应用举
例若今天日期是2017年9月7日,请按照指定格式输出日期今天是2017年09月07日今天是2017年9月7日,Thu今天是17年9月7日今天是2017-09-07现在是2017-9-709:45课堂练习根据系统日期,输出今天是星期几,例如,
如果是星期一,则输出“今天是星期一”;如果是星期二,则输出“今天是星期二”;如果是星期三,则输出“今天是星期三”……263.2.2获取当前时间戳函数函数strtotime()凼数strtotime()将任何字符串的日期时间描述解析为Unix时间戳,即获取19
70年1月1日零时零分零秒以来的秒数。凼数格式:strtotime(string)。参数string可以是一个日期时间格式的字符串,例如strtotime('2019-1-1');也可以是一个表示日期
时间的英文单词,例如strtotime("today")。27例题3-5应用strtotime()凼数进行处理,分别获取今天的日期、明天的日期、下个星期一的日期和三天后的日期题目分析:获取指定的日期,首先要使用strtotime()函数获取相应日期对应的时间戳
,之后使用date()函数将时间戳转换为日期并输出28程序代码如下29例题3-6创建文件,求当前日期距离下一年(例如2019年)元旦的天数题目分析:获取天数的要求需要转换为获取时间戳的要求获取当前日期
对应的时间戳获取2019年1月1日对应的时间戳将两个时间戳相减之后得到两个日期之间的秒数之差,并将其转换为天数即可30程序代码如下获取当前日期对应的时间戳,可以使用代码中提供的两种形式3.3流程控制语句请大家阅读图示代码,思考问题:各个条件的顺序能否随意颠倒(例如第5行和第6行颠倒)?为
什么?能否去掉前面三个else,为什么?使用switch结构完成示例3-9提示,php中14/5结果为2.8,使用floor(14/5)结果为2课堂练习请完成如下功能设置date(“D”)的作用是获取今天是星期几,例如周一,则返回字符串M
on,周二则返回字符串Tue使用日期函数date(“D”)获取今天是星期几,保存在变量$week中判断$week的值如果是星期一”Mon”或星期四”Thu”,则输出‚今天要学习php课程啦,我要争取做到上课不睡觉,也不玩手机
!!!‛如果是星期六Sat或星期天Sun,请输出‚今天又可以睡懒觉也可以好好玩耍了,要是天天都过周末该多好呀‛讲解课堂练习方法一:使用if结构(注意比较运算符和戒运算符的应用)方法二:switch结构(注意
case子句和break的应用)35示例3-11for循环应用页面运行效果如图所示要求:使用表格显示输出内容当前日期使用红色边框突出显示36例题分析输出系统月历需要下面7个步骤:获取当前月第一天对应的时间戳
按照时间戳获取第一天对应的星期几获取当前月的天数输出表格标题和标题行(星期几)输出第一天前面的空单元格判断日期中换行的位置对应星期几按行输出每一天37代码-1第一步,获取当前月第一天对应的时间戳第二步,按照时间戳获取第一天对应的星期几第三步,获取当前月的天数
38代码-2第四步,输出表格标题和标题行(星期几)39代码-3第五步,输出第一天前面的空单元格该变量表示的是第一天对应的星期几第六步,判断日期中换行的位置第七步,对应星期几按行输出每一天3.4数组3.4.1PHP数组的基本概念数组由多个元素组成,元素之间相互独立,识别
或者访问一个元素需要使用‚键‛(key),每个元素可以保存一个数据,相当于一个变量,因此可以将数组看作一串内存空间连续的变量组合。3.4.1PHP数组的基本概念数组的定义:php中数组通过array()函数定义,括号中可以直接写数组元素的取值,使用逗号间隔各个值例如$arr1=array
('a','b','c','d','efg',23,48);如$arr2=array('李颖','2014080312',19,'团员');数组元素个数的获取获取数组元素个数使用函数count(),
括号中使用数组名作为函数参数,返回值为指定数组元素的个数例如count($arr1)结果为7count($arr2)结果为4数组及日期时间函数综合应用如果系统日期是2017年9月25日,编写代码,要求在页面上输出如下内容:
今天是2017年9月25日星期一思考问题:是否可以通过date()函数中的某个参数直接获取‚星期一‛、‚星期二‛这样的值?date()函数中与星期几有关的参数有哪几个?433.4.2PHP数组的类型PHP中数组有三种类型
:索引数组、关联数组和多维数组。索引数组索引数组是指带有数字索引的数组,使用递增的自然数列0、1、2…作为数组元素的索引,定义数组时,直接在array()函数中设置元素值即可,例如:$arr1=array('
a','b','c','d','efg',23,48);数组$arr1中共有7个元素,可以分别通过$arr1[0]、$arr1[1]、……$arr1[6]的方式访问相应的数组元素。44完成数组访问创建文件arr-1.php,使用数组循
环结构输出$arr1中所有元素的值核心代码如下:$arr1=array('a','b','c','d','efg',23,48);for($i=0;$i<count($arr1);$i++){echo$arr1[$i];}若要在此处增加数组元素“China中国”,是否
需要修改其它内容完成所有元素值的输出?若要在输出每个元素值之后换行输出下一个元素值,如何修改代码?45关联数组的概念及定义形式关联数组是指带有指定键的数组,数组元素的键名是由用户根据数组元素值的意义来定义的,定义数组时,需要使用“key=>value”(即“键名=>值”)
的方式设置各个数组元素。例如$arr2=array("animal"=>"panda","name"=>"Betty","appearance"=>"pretty")数组$arr2中有三个元素,键名分别是
animal、name和appearance,可以分别通过$arr2['animal']、$arr2['name']和$arr2['appearance']访问相应的数组元素。这种方式定义的数组元素,不可使用索引形式访问46关联数组应用示例创建文件
keyInd.php,定义上面数组,处理乊后输出内容“panda,nameisBetty,isverypretty”完成操作说明:若独立访问关联数组的数组元素,键名需要使用引号定界;若将数组元素放在双引号定界符中,键名则不需要引号定界47思考
问题若要在数组中增加元素"age"=>"1.5",如何完成?能否使用下面循环结构代码逐个输出数组元素的内容?为什么?for($i=0;$i<count($arr2);$i++){echo$arr2[$i];}48混合数组若是定义了下面混合数
组的形式$arr1=array('a','b','name'=>'liuli','c',34=>'efg',23,'67'=>'zhang',48);元素‘a’、‘b’、’c’、23和48的索引分别是多少?上面元素的索引分别
是0、1、2、35、68总结:若是索引数组和关联数组的元素混合在一个数组中,对于前者所使用的索引取值,将会依据位于其前面的键名是否是整数形式来决定,若是,则使用该整数之后的数字作为索引,不是,则延续前面自然数列索引的取值3.4.3遍历数组遍历数组是指对数组中每个元素进行访问
,完成指定的操作。在PHP中遍历数组可以使用each()凼数完成,也可以使用foreach循环诧句完成。50each()函数的作用、格式和返回值说明each()凼数可以返回一个数组中当前元素的键和值,并将数组指针向前移劢
一步,常在循环中用来遍历一个数组。使用格式:each(数组名)。说明只要遍历过程还没有到达数组末尾,使用each()函数就可以获得数组的当前元素的键名以及取值,即该函数返回的是一个具有两个元素的数组,数组元素的键名分别是key和value;若是
遍历过程已经到达数组末尾,则each()函数返回false。51应用示例【示例】创建一个包含指定学生信息的一维数组$stu,使用循环遍历数组的方式逐个输出元素键名和值。运行效果如图所示。52使用for循环完成当$i=0时,循环进行第一次,获取数组stu
中第一个元素的键名和键值信息,放在数组$print中,存放形式是$print[key]="No",$print[value]="2018087301"后面三次循环,形式相似53使用foreach循环语句遍历数组foreach诧句提供了遍历
数组的简单方式,该诧句仅能够应用于数组和对象,根据需要获取的内容丌同,有两种用法。用法一:foreach(数组as$value){诧句序列}每次循环中,将当前数组元素的值赋给变量$value,并且数组内部的指针向前移动一步,为下次循环做准备。用法二:foreach(数组as$k
ey=>$value){诧句序列}每次循环中,将当前数组元素的键名赋给变量$key,数组元素的值赋给变量$value,并且数组内部的指针向前移动一步,为下次循环做准备。54使用foreach语句修改前面示例