第3章商城开发基础知识.ppt

上传人:sccc 文档编号:5952663 上传时间:2023-09-08 格式:PPT 页数:87 大小:930.54KB
返回 下载 相关 举报
第3章商城开发基础知识.ppt_第1页
第1页 / 共87页
第3章商城开发基础知识.ppt_第2页
第2页 / 共87页
第3章商城开发基础知识.ppt_第3页
第3页 / 共87页
第3章商城开发基础知识.ppt_第4页
第4页 / 共87页
第3章商城开发基础知识.ppt_第5页
第5页 / 共87页
点击查看更多>>
资源描述

《第3章商城开发基础知识.ppt》由会员分享,可在线阅读,更多相关《第3章商城开发基础知识.ppt(87页珍藏版)》请在三一办公上搜索。

1、PHP+MySQL动态网页技术教程,第3章 商城开发基础知识,3.1项目引导:PHP基础知识,在本章,我们主要学习PHP变量、常量、运算符与表达式、各种流程控制语句、函数、数组以及PHP表单处理等内容。在学习这些内容的基础上,完成一个模拟的图书订单程序。,3.2项目分析,PHP是非常流行一门Web开发语言,它的应用前景十分广阔。PHP几乎可以胜任目前所有B/S模式应用程序的开发,从一般的留言板、新闻系统到大型的论坛系统、电子商务平台、网上办公系统、信息管理系统等。除此之外PHP还可以应用于桌面应用程序的开发和命令行脚本。学习PHP语言应该讲究方法和策略,别人的学习经验可以借鉴,但不能照抄照搬。

2、,学习PHP的一些经验,由于PHP主要用户Web开发,所示学习PHP之前应熟悉HTML、CSS等语言;掌握PHP环境搭建方法,理解PHP网站运行原理。熟练使用一两种编辑工具;熟练掌握PHP大量函数的使用,理解OOP、模板、框架等技术;掌握MySQL数据库知识,尝试结合PHP和MySQL开发应用程序;掌握PHP编程规范,养成一个良好的编程习惯;充分利用网络学习资源,多向他人请教;明确目标,坚定信念,理论联系实际。PHP程序员成长之路是一个循序渐进、由浅入深的过程,只有拥有一颗持之以恒的决心,不断从失败中总结经验教训,不抛弃,不放弃,相信自己一定能够赢得最后的胜利。本章是以讲解PHP基础知识为主,

3、主要包括以下内容:PHP基本语法、数据类型;常量与变量、运算符和表达式;控制语句:条件语句和循环语句;函数:库函数和自定义函数;数组:一维数组、多维数组和数组函数;PHP程序的错误与调试。,3.3技术准备,3.3.1 基本语法1.PHP标记XML标记风格:短标记风格:ASP标记风格:Script标记风格:echo Hello Word!;,3.3技术准备,2.输出语句 echo语句是PHP程序中最常用的输出语句,它将传递给它的字符回显到浏览器上。语法格式:echo 显示内容;【例3-1】使用输出语句,输出“同学,你好!欢迎学习PHP。”,3.3技术准备,3.注释语句PHP注释语句有三种格式:使

4、用“/*”符号开始,以“*/”符号结束的多行注释;使用“/”双斜线开始的单行注释;使用“#”开始的单行注释。【例3-2】注释语句。,3.3技术准备,4.变量变量是程序中数据的临时存放场所,是程序设计过程中可以改变的量。一个程序因为计算不同而需要不同个数的变量,此时就必须为每一个不同的变量赋予不同的名称以示区别。(1)变量的命名与赋值在为一个变量命名时,需要遵循以下命名规则:变量名必须以“$”符号开头,例如$bvtc_student;变量名的第一个字符必须是字母或者下划线,后面可以是字母、数字或者下划线组合;变量名严格区分大小写,如果两个变量只是大小写不同,则被视为两个变量。在PHP中,变量命名

5、通常与变量赋值一起进行。,3.3技术准备,(2)数据类型数据是程序运行的基础,所有的程序都在处理各种数据。为了方便对数据的处理,需要对数据进行分类。PHP支持8种数据类型,包括4种标量类型(标量类型是数据结构中最基本的单元,同一时刻只能存储一个数据)、2种复合类型和2种特殊类型。,3.3技术准备,【例3-3】使用单、双引号定义字符串。;/使用单引号输出echo 使用双引号输出:$a$b;/使用双引号输出?,3.3技术准备,【例3-4】输出转义字符。;echo 输出美元符号:$;echo;echo 输出美单引号:;echo;echo 输出美双引号:;echo;echo 输出一个十六进位字符:x5

6、2;?,3.3技术准备,(3)数据类型转换将变量的值从一种数据类型变为另一种数据类型的过程称为类型转换。在PHP程序中,有时会出现对多种数据类型进行混合处理的情况,如把一个string类型的数字字符串数据转换成一个integer类型的数据,此时就必须考虑数据类型之间的转换问题。PHP中数据类型之间的转换分为自动转换和强制转换两种。自动转换适用于四种标量类型。在不同数据类型的变量混合运算时,如果参与运算的变量类型不同,则由系统按规定自动转换成同一类型,然后再运算,如“+”会将字符转换成数值,“.”会将数字转换为字符。【例3-5】数据类型自动转换示例。;/结果为510aecho$int_i+$st

7、ring_i.;/结果为15echo$float_i.$int_i.;/结果为15.15?,3.3技术准备,PHP的强制转换与C中的非常相似,即在要转换的变量之前加上用括号括起来的目标类型,允许强制转换数据类型有以下几种:int、integer:转换成整型bool、boolean:转换成布尔型float、double、rea:转换成浮点型string:转换成字符串 array:转换成数组object:转换成对象【例3-6】数据类型强制转换示例。;/结果为1.53echo(int)$int_j;/结果为1?,3.3技术准备,5.常量 在程序设计过程中,数值始终不变的量,称之为常量。一个常量可以保

8、存一个值,但是常量值一旦被设定后,在脚本的其它地方就不能再更改该常量的值。PHP中有两种常量,即系统预定义常量和自定义常量。(1)系统预定义常量PHP为脚本程序的正常运行预定义了许多系统常量,这些系统常量可以很好的帮助我们了解系统当前的情况,而且这些常量可以随时被调用。不过很多系统常量都是由不同的扩展库定义的,只有加载了这些扩展库后才能使用,扩展库可以动态加载,也可以在编译时包含进去。常用的预定义常量:_FILE_:该常量存放PHP文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名;_LINE_:该常量存放PHP程序中的当前行号。如果用在包含文件中,则返回在包含文件中的当前行号;PH

9、P_VERSION:该常量存放PHP程序的版本;PHP_OS:该常量存放执行PHP解析器的操作系统名称,例如 Linux;TRUE:该常量代表真值(true);FALSE:该常量代表假值(false);E_ERROR:该常量指到最近的错误处;E_WARNING:该常量指到最近的警告处;E_PARSE:该常量指到解析语法有潜在问题处;E_NOTICE:该常量指到PHP语言中有异常处。,3.3技术准备,【例3-7】使用预定义常量,输出当前使用的PHP版本号和操作系统。(2)自定义常量在PHP中,用户可以通过define()函数自行定义所需要的常量。其语法:bool define(string$na

10、me,mixed$value,bool case_$insensitive)name:指定常量的名称;value:指定常量的值;insensitive:指定常量名称是否区分大小写。如果设置为true则不区分大小写;如果设置为false则区分大小写。如果没有设置该参数,则取默认值false。,3.3技术准备,创建常量时,需要注意以下几点:按照惯例常量名称都由大写字母组成,这样容易区分常量与变量,可以使代码变得更容易阅读和维护;常量只能用define()函数定义,不能通过赋值语句赋值;常量可以不用理会变量范围的规则,而在任何地方定义和访问;常量的值只能是标量;常量前面没有美元符号$。【例3-8】定

11、义常量,显示Copyright 2011,3.3技术准备,6.运算符运算符是用于描述各种不同运算的符号,它会针对一个或多个操作数进行运算,例如2+3,其操作数是2和3,而运算符则是“”。(1)算术运算符算术运算符是最常用的运算符,用来执行算术运算。PHP提供了7种算术运算符,3.3技术准备,【例3-9】使用算术运算符示例。;echo$int_a.-.$int_b.=;/减法echo$int_a-$int_b.;echo$int_a.*.$int_b.=;/乘法echo$int_a*$int_b.;echo$int_a./.$int_b.=;/除法echo$int_a/$int_b.;echo$

12、int_a.%.$int_b.=;/取余echo$int_a%$int_b.;echo$int_a.+=;/自加echo$int_a+.;echo$int_a.-=;/自减echo$int_a-.;?,3.3技术准备,(2)字符串运算符字符串运算符只有一个,就是英文输入法状态下的句号。我们可以使用字符串运算符将两个字符串连接起来并保存到一个新的字符串中,类似于我们使用加法操作符将两个操作数加起来一样。【例3-10】连接字符串“城市,”和“让生活更美好”,输出:城市,让生活更美好!,3.3技术准备,(3)赋值运算符基本的赋值运算符“=”:将等号右边的值赋给等号左边的变量,称为“被赋值为”或者“被

13、设置为”,但是不能将其读为“等于”。例如:$Pqty=6;复合赋值运算符,3.3技术准备,(4)位运算符位运算符可以将一个整型变量当作一系列的位(bit)来处理。在PHP中提供了以下六种位运算符。,3.3技术准备,(5)比较运算符PHP中还提供了一些用于进行比较的运算符,通过比较两个数据的大小来返回真值或者假值,通常用在条件判断和循环处理中。,3.3技术准备,(6)逻辑运算符逻辑运算符用来组合逻辑条件的结构,多用于条件控制语句中的条件组成,例如,我们对大于20小于40的变量做相应的操作,那么我们在条件组成上可以用“与”操作,如$int_var1=20&$int_var1=40。在PHP中提供了

14、以下几种逻辑运算符。,3.3技术准备,(7)其他运算符三元运算符(?:)语法格式为:condition?value1:value2 运算法则:首先判断条件condition,如果条件condition为真,则返回value1结果;如果条件condition为假,则返回value2结果。实际上三元运算符和if语句作用相似,但是可以让程序更为简单和高效。其他运算符,3.3技术准备,(8)运算符的优先级与结合性,3.3技术准备,7.表达式 表达式是由变量、常量、运算符等按一定的规则组成,每个表达式都返回唯一的运算结果,运算结果的类型由数据和运算符决定。根据表达式中运算符类型不同,可以把表达式分为:赋

15、值表达式、算术表达式、逻辑表达式、位运算表达式、比较表达式、字符串连接表达式等等。,3.3技术准备,3.3.2条件结构任何复杂的程序设计都离不开流程控制语句,这些语句决定了程序的走向。PHP语言的流程控制由三种基本结构组成,即顺序结构、选择结构和循环结构。如果程序的执行顺序是从上到下依次逐行逐句执行,那么这个流程就叫做顺序结构,在这种结构中程序的执行流程不出现反复和分流,这是最常见和最简单的程序流程控制结构。如果程序需要分流,那么就需要使用条件语句进行判断,根据判断结果选择执行不同的分支。PHP中提供了多种形式的条件语句,包括:if 语句、if else语句、ifelse ifelse语句和s

16、witch语句。,3.3技术准备,1.if语句(单分支语句)单分支的if语句是最简单的判断语句,可理解为“如果某条件成立则去做某件事情”,其语法格式如下:if(条件表达式)语句块;if语句的条件表达式必须用小括号“()”括起来;小括号中的条件表达式就是执行条件,一般是比较运算符或者逻辑运算符组成的表达式所计算的结果值,即布尔值ture或false,结果为true,执行语句块,结果为false,不执行语句块;“语句块”中的语句可以只有一条语句,也可以有多条语句,有多条语句时用大括号“”括起来。【例3-11】编写程序,实现根据时间不同显示不同的问候语。要求:运行网页时,自动获取当前时间,如果时间是

17、612点,显示“您上午好”;时间是1218点,显示“您下午好”;时间是1824点或06点,显示“您晚上好”。,3.3技术准备,2.ifelse语句 此语句的使用比单分支的if语句使用更广泛,可以理解为“如果某条件成立去做某件事情,否则去做另外一件事情”,其语法格式如下:if(条件表达式)语句块1;else语句块2;如果条件表达式的值为true,则执行if后面的语句块1;如果条件为false,则执行else后面的语句块2。【例3-12】编写程序,实现根据输入年份,判断是否为闰年,并且显示2月的天数(闰年的判断条件是年份能被4整除而不能被100整除或者年份能被400整除)。,3.3技术准备,3.i

18、felse If语句(多分支结构)ifelse语句只能提供两种选择,但在某些情况下,遇到两种以上的选择,比如成绩在90分以上,输出优秀;7590分之间,输出良好;6075分之间输出及格,60分以下输出不及格,则需要使用if多分支结构语句,其语法格式如下:if(条件表达式1)语句块1;else if(条件表达式2)语句块2;else if(条件表达式n)语句块n;else语句块n+1;该语句按顺序依次判断条件表达式1、条件表达式2,如果第一个条件为false,就测试其他的条件,一旦满足某个条件,就执行相应的语句块。如果所有的if和else if语句中的条件都为false,则执行else对应的语句

19、块。,3.3技术准备,【例3-13】编写程序,实现根据输入的成绩显示优秀(90100)、良好(7590)、及格(6075)或不及格(060)。,3.3技术准备,4.switch语句switch语句的语法格式如下:switch(表达式)case 常量表达式1:语句块1;break;case 常量表达式2:语句块2;break;case 常量表达式n:语句块n;,3.3技术准备,break;default:语句块n+1;break;该语句首先计算switch后的表达式的值,然后将表达式的值依次与常量表达式1、常量表达式2、常量表达式n去比对,如果与某一个匹配,则执行该case 分支下的语句块,并通

20、过break语句跳出switch分支结构。当所有条件均不匹配时,则执行default后的语句块n+1,并跳出分支switch。若无default语句,则直接跳出switch结构。表达式与常量表达式的数据类型必须匹配;任意两个case的条件不能相同;每个case条件下的语句必须有break语句;不允许执行完一个case语句后,再执行第二个case语句,除非这个case语句是空。【例3-14】使用date()函数获取当前星期信息,输出相应的中文信息。程序将通过date()函数获取当天的星期信息,输出相应的中文星期。,3.3技术准备,3.3.3循环结构循环是指在指定条件下,多次重复执行一组语句的结构

21、。重复执行的语句被称为循环体。在程序设计中,当需要重复执行一组计算或操作时,可通过循环语句来实现。PHP中的循环语句包括:while循环语句、dowhile循环语句、for循环语句等。1while循环当循环次数不确定时,可以使用while循环语句,根据指定的条件来执行循环,其语法格式如下:while(条件表达式)循环体“条件表达式”的结果是一个布尔值。当条件为true时,执行循环体语句;如果条件为false,就跳出循环体,执行循环体后面的语句;在while循环语句中,一定要有修改循环条件的语句,并由此决定是否进行下一轮的循环,如果循环体中没有修改循环条件的语句,可能会造成死循环。【例3-15】

22、使用while循环语句计算1到100的累加和。其结果为:1+2+3+.+100累加和.,3.3技术准备,2.dowhile循环dowhile循环语句也用于循环次数不定的循环,与while语句相似,但稍有区别,语法格式如下:do循环体while(条件)这是后判断条件的当型循环语句,先执行循环体,然后判断条件,决定是否继续执行循环。如果条件为true,就返回到do位置并执行循环体;如果条件为false,则终止循环;该循环语句第一次进入循环体是无条件的,即使第一次判断时条件就为false,也要执行一次循环体;注意:在循环体中也要有修改条件的语句,才能够跳出循环。,3.3技术准备,【例3-16】使用d

23、owhile循环语句计算1到100的累加和。【例3-17】while与dowhile语句结构区别示例。0)echo 执行了while循环体;doecho 执行了do while循环体;while($i0)?,3.3技术准备,3.for循环for循环语句常用于循环次数已知的情况,其语法格式如下:for(表达式1;表达式2;表达式3)循环体for语句的执行过程为:首先计算表达式1的值;判断表达式2的值是true还是false,如果为真则执行循环体,然后转到“”,否则转到“”结束循环;计算表达式3的值,然后转到步骤“”;结束循环。for语句中的表达式1、表达式2和表达式3都可以省略,但是分隔表达式的

24、分号不能省略,例如格式for(;)格式。省略表达式1,要在循环体外给变量赋初值;省略表达式2,要在循环体内添加跳出循环的语句;省略表达式3要在循环体内添加改变变量值的语句。【例3-18】使用for循环语句计算1到100的累加和。,3.3技术准备,4其他循环控制语句 在正常循环执行语句体的时候,难免在某些特殊情况下需要终止循环,这时候需要一些特殊的语句来使程序流程跳出循环或者停止本次循环操作。PHP中提供了两条语句break和continue,来实现上述操作。break语句的作用是跳出整个循环,执行后续代码,而continue语句则是跳出本次循环,继续执行下一次循环操作。,3.3技术准备,5循环

25、嵌套在一个循环体内又包含了另一个完整的循环结构,称之为循环嵌套。循环嵌套主要由while循环、do while循环和for循环3种循环自身嵌套和相互嵌套构成。循环嵌套的外循环应“完全包含”内层循环,不能发生交叉;内层循环与外层循环的变量一般不应同名,以免造成混乱;嵌套循环要注意使用缩进格式,以增加程序的可读性。【例3-19】使用循环语句输出“九九乘法表”。,3.3技术准备,3.3.4函数 在程序执行过程中,通常会遇见需要重复用到的代码段,如果在每次用到该代码段的时候,都要手动编写代码,不仅浪费时间,而且会使程序变得冗长,错误查找困难,可读性差,可维护性降低。同C语言类似,PHP语言同样也提供了

26、一种可以将重复的代码段打包使用的方法即函数功能。PHP中的函数分为两种,即内置函数和自定义函数。,3.3技术准备,1.内置函数(1)工具函数【例3-20】die函数示例。【例3-21】is_bool函数示例。,3.3技术准备,(2)数学函数数学函数是指对数字表达式进行数学运算并返回运算结果的函数。abs()函数 ceil()函数 floor()函数 round()函数 min()函数 max()函数 rand()函数 格式化函数:number_format函数,3.3技术准备,【例3-22】计算并显示1、0、-1的绝对值。【例3-23】对1.1、1.9、-1.1三个数进行上取整。【例3-24】

27、对1.1、1.9、-1.1三个数进行下取整。【例3-25】对2.4、2.5、2.045三个数进行四舍五入。【例3-26】求一组数中的最小数。【例3-27】求一组数中的最大数。【例3-28】使用rand函数产生7个09的随机数。【例3-29】使用number_format函数。,3.3技术准备,2.自定义函数(1)函数定义 在PHP中,函数使用关键字function来定义,通常由函数名称、参数、函数体和返回值4部分构成。自定义函数的语法格式如下:function 函数名(参数1,参数2,参数3)函数体;return 函数返回值;创建函数时需要注意:函数名称用来标识某个函数,PHP中不允许函数重名

28、。在命名函数时应注意,函数名称只能包括数字、字母和下划线,并且不能以数字开头;PHP自定义函数不能与PHP内置函数同名;PHP自定义函数不能与PHP关键字同名;函数体必须用大括号“”括起来,即使只包含一条语句;函数可以没有返回值。【例3-30】自定义一个累加函数,实现从0到n的累加和。,3.3技术准备,(2)函数调用在PHP中,可以直接使用函数名称进行函数的调用。如果函数带有参数,调用时需要传递相应参数。调用系统函数和自定义函数的方法是相同的,可以使用下面的语法格式:函数名(实参列表);实参列表要与函数定义时的形参列表相对应,如果实参数量比形参数量多,则多余的实参会被自动屏蔽掉;如果实参数量比

29、形参数量少,则剩余形参会以空值代替。【例3-31】自定义函数,实现从0到n的累加和;使用该函数,计算0加到10的累加和。,3.3技术准备,(3)参数传递在函数调用过程时,需要向函数传递参数,被传入的参数称为实参,而函数定义的参数称为形参。参数传递的方式主要有按值传递和按引用传递。值传递值传递是参数在调用函数前后不发生改变,传递给函数的只是该参数的值。即在传递参数时函数范围内对该值的任何改变都在函数外部被忽略掉。引用传递如果希望在函数内部修改参数值,且函数外部也能同时改变该参数的值,可以使用引用传递。引用传递参数的方式为在参数前面添加“&”符号。在引用传递方式中,将实参在内存中的地址传递给相应的

30、形参,形参的值发生改变的同时实参的值也发生相应的改变。,3.3技术准备,【例3-32】按值传递的函数调用示例。函数外部$number=.$number.;/显示外部值?,3.3技术准备,【例3-33】引用传递的函数调用示例。函数外部$number=.$number.;/显示外部值?,3.3技术准备,3.3.5数组 1.什么是数组数组是存储一组相关数据的变量,这组数据的类型可以相同,也可以不同。组成数组的这些数据称为数组元素,每个数组元素都有一个编号,这个编号称为数组的键(key),每一个键对应一个值(value)。数组中的键可以是整型数,也可以是字符串,以整型数作为键的数组称为索引数组,以字符

31、串或数字和字符串混合作为键的数组称为关联数组;数组元素的键可以有一个或多个,相应的数组分别称为一维数组或多维数组。2.索引数组索引数组是数组中最简单的数组,由一系列元素组成,在默认情况下,数组索引从0开始。例如,表 310 所示图书信息数组,数组变量的名称为$bookinfo,它存储了4个数组元素。【例3-34】创建一个索引数组,存储一本书的信息。,3.3技术准备,(1)创建索引数组数组在使用之前,必需先创建。在php中可以用array()函数方式创建数组,也可以使用为数组元素赋值的方式创建数组。数组本身也是变量,数组的命名规则与其他变量相同。使用array()函数创建$bookinfo数组,

32、使用print_r函数显示所有数组元素。直接赋值创建$bookinfo数组,并访问数组元素如果在声明数组时不知道预先声明数组的大小,或在实际编写程序代码时数组的大小可能发生变化,这时需要采用直接对数组元素赋值的方法创建数组。当数组创建完毕后,除了可以使用print_r函数显示所有数组元素外,还可以使用数组名加键的方法访问单一的数组元素,键在数组名后面用中括号括起来。【例3-35】创建索引数组$bookinfo,然后修改个别元素的值,并显示数组元素。,3.3技术准备,(2)索引数组遍历 数组的遍历是指依次访问数组中的每一个数组元素,直到访问完为止。它是访问所有数组元素常用的操作,在遍历过程中可以

33、完成对数组元素的查询或者其他的运算操作。在PHP中遍历数组的方法有很多种,用的比较多的是for循环结构和foreach 循环结构。for循环结构 当要遍历的数组是索引数组并且该数组的索引是连续整数时,可以使用for循环结构来遍历数组。【例3-36】使用for循环语句遍历索引数组。;?,3.3技术准备,foreach循环结构 利用foreach 循环语句遍历数组共有两种方法,其语法格式如下:foreach(array as$value)do something;或者foreach(array as$key=$value)do something;语法格式一遍历给定的数组array,在每一次循环中

34、当前数组元素的值赋值给变量$value,并且数组内部的指针向前移动一个单位。语法格式二与语法格式一作用相同,唯一不同之处在于当前数组元素的键名即索引序号将赋值给普通变量$key。【例3-37】使用forach循环语句遍历索引数组。;?,3.3技术准备,3.关联数组 创建数组时,为了增加数组元素的可读性,可以把每个数组元素的key值使用有意义的单词、汉字来表示,key和value之间用=来连接,这样的数组被称为关联数组。与访问索引数组相似,关联数组也可以用数组名加键的方法访问数组元素。(1)创建并访问关联数组【例3-38】创建一个图书信息关联数组。(2)遍历关联数组 由于关联数组的key不是数字

35、,所以无法用for循环语句遍历关联数组,但是可以使用foreach来遍历。【例3-39】将图书信息数组$bookinfo定义成关联数组,并遍历该数组,输出数组元素的key值和value值。,3.3技术准备,4.多维数组(1)二维数组在php中,除了可以创建一个key值的一维数组,还可以创建多于1个key的二维数组及多维数组。多维数组的实质是数组中的数组元素仍然是数组。(2)多维数组超过二维的数组统称为多维数组。它可以存储更加复杂的数据内容。PHP中多维数组与一维数组的区别在于多维数组有多个下标,其用法基本上是一致的。【例3-40】创建二维数组,存入多条图书信息,并以二维表的形式显示数组内容。,

36、3.3技术准备,【例3-41】将图书分类信息存入多维数组。array(经济=array(经济法,经济史),会计=array(成本会计,管理会计),科技=array(计算机=array(程序设计,数据库),科普=array(生态环境,宇宙知识);print_r($bookinfo);?,3.3技术准备,5.修改数组【例3-42】修改数组。6.常用数组函数 sort()函数和rsort()函数sort()函数对数组实现升序排序,rsort()函数实现对数组降序排序。【例3-43】索引数组排序。asort()函数和arsort()函数【例3-44】关联数组排序。ksort()函数和krsort()函

37、数按照数组的键名进行排序,使用ksort()函数和krsort()函数。【例3-45】数组按key值排序。,3.3技术准备,(2)数组判断函数 确定元素是否在数组中 在PHP中,可以使用in_array()函数直接确定某元素是否在数组中。如果数组中存在该元素则in_array()函数会返回ture,否则返回false。该函数的语法格式如下:bool in_array(mixed$needle,array$haystack,bool$strict)在上述语法中涉及到的参数说明如下:needle:指定搜索数据;haystack:指定要进行搜索的数组;strick:该参数为布尔类型的,其默认值为fa

38、lse。如果该参数设置为true,则判断搜索数据与数组值的类型是否相同。,3.3技术准备,判断某个自定义变量是否是数组在PHP中,可以使用is_array()函数判断某个自定义变量是否是数组,如果是数组,则返回true,否则返回false。语法格式如下:is_array($arr);【例3-46】判断数组函数。(3)数组查找函数使用array_search()函数可以在数组中查找一个值,返回这个值所对应的键名即索引。如果没有找到,则返回false。语法格式为:array_search($needle,$array)其中,$needle为想要查找的值,$array为需要查找的数组。整个函数返回数

39、组$array中值为$needle的数组元素的键名即索引。【例3-47】数组查找。,3.3技术准备,3.3.6PHP表单处理 1.HTML表单组成(1)表单表单是用户和网站进行交互的主要方式。表单由标记对来创建,标记具有name、action、method等属性,表单标记的格式为:其属性作用如下:name:表示表单的名称,在同一个页面中,表单具有唯一的名称;action:指定将表单数据发送到那个程序页面进行处理,其值为处理程序页面的URL地址。如果其值为空,则将表单数据提交到当前页面;method:指定把数据提交的方式,其值可以为get或post。get方式是将表单中的数据追加到URL后面,以

40、URL参数的方式发送。post方式是将表单中的数据在HTTP报文中以隐藏的方式发送。由于get方法传输的数据量有限,并且安全性低,所以一般选用post方法。,3.3技术准备,(2)表单域表单域包含文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等,用于采集用户输入或选择的数据。下面以文本框为例,介绍表单域的常用属性。文本框是一种让访问者自己输入内容的表单对象,通常用来填写简短的信息,如用户名、地址等,其格式为:其属性作用如下:type:表示表单对象的类型;如type=text,表示该对象是单行文本输入框,type=password,表示该对象是密码框;name:表示文

41、本框的名称,要保证数据的准确采集,名称必须独一无二;size:表示文本框的宽度,其单位是单个字符宽度;maxlength:表示该文本框最多可以输入的字符数;value:表示文本框的初始值。,3.3技术准备,(3)表单按钮表单按钮包含提交按钮、复位按钮和一般按钮。提交按钮用来将输入的信息提交到服务器;复位按钮用来重置表单;一般按钮用来控制其他定义了处理脚本的处理工作。提交按钮:,submi表示该按钮是提交按钮;复位按钮:,reset表示该该按钮是复位按钮;一般按钮:,button表示该按钮是一般按钮。2.接收表单传值PHP中使用全局变量$_GET和$_POST来接收表单中提交的数据。在PHP程序

42、的任何部分都可以调用这些全局变量。【例3-48】创建如图注册页面,通过$_GET和$_POST接收用户输入的内容。,3.4项目实施,当当网购物过程中,在图书展示页面选择图书,单击“购买”按钮,将图书放入购物车中,在购物车管理页面单击“结算”按钮,进入订单处理页面生成订单,用户进入订单管理页面,可以查看订单的信息。我们将上述过程进行简化,将图书订单项目分成两步,选择图书和生成、查看订单。这里我们需要创建两个PHP程序页面,图书购买页面和订单查看页面,图书购买页面负责收集购买图书的信息,订单查看页面负责接收购买的图书信息,通过计算处理,最终将订单信息展示给用户。1创建购买图书页面图书购买页面需要告

43、诉用户,该网上书店可以提供哪些图书,用户可以选购自己需要的图书,并可以填写选购图书的数量,如下图所示。,3.4项目实施,3.4项目实施,图书购买页面(buy.php)代码如下所示:书名数量网页设计与制作CSS网页设计标准教程PHP开发请选择您在哪个区域北京河北上海香港澳门某区,3.4项目实施,2编写生成订单程序表单处理程序接收购买图书纤细,实现购买数量的非空验证和一个图书折扣算法。如果数量超过一个限定值就可以有折扣,折扣方案如下所示:购买少于10本:没有折扣购买1049本:5%的折扣购买5099本:10%折扣购买100199本:15%折扣购买本200以上:20%折扣,3.4项目实施,网上书店?

44、php$wqty=$_POSTWqty;/定义变量来访问表单数据$cqty=$_POSTCqty;$pqty=$_POSTPqty;$area=$_POSTarea;define(WPRICE,28.00);/定义常量 define(CPRICE,32.00);define(PPRICE,38.50);$totalqty=$wqty+$cqty+$pqty;/图书总数量,3.4项目实施,$discount=0;if(!empty($wqty)|!empty($cqty)|!empty($pqty)/判断订单是否为空if($totalqty=10/显示订单日期switch($area)/显示您所

45、处位置,3.4项目实施,case a:echo 在北京;break;case b:echo 在河北;break;case c:echo 在上海;break;case d:echo 在香港;break;case e:echo 在澳门;break;case f:echo 在某区;break;echo 的订单如下:;echo 您一共购买图书.$totalqty.本;echo 网页设计与制作.$wqty.本,每本.WPRICE.元;/输出变量echo CSS网页设计标准教程.$cqty.本,每本.CPRICE.元;echo PHP开发.$pqty.本,每本.PPRICE.元;echo 您的折扣:.$d

46、iscount.%;/输出折扣echo 您需要支付人民币.number_format($totalamount,2).元;/输出总金额elseecho 您没有订书,不存在您的订单;echo“您可以点击返回按钮回到上一页重新订书,谢谢!”;echo;/空订单返回上一页?,3.4项目实施,运行程序,输入如页面数据,单击“提交”按钮,将进行处理数据,得到如下图所示页面结果。,3.5技术拓展,3.5.1PHP错误与调试在前面编程过程中,总是难免出现各种各样的PHP程序错误,下面我们学习一些关于PHP错误及调试的技巧和技术。1PHP错误类型无论使用什么编程语言,通常都会遇到语法错误、运行时错误和逻辑错误

47、3中类型,下面我们分别进行介绍。(1)语法错误任何语言都有一定的语法规则,例如PHP语法要求语句以分号结束,函数多个参数之间用逗号隔开等。如果语句不符合这些规则就会出现语法错误。例如下面程序中第一条语句没有加分号,程序会出现语法错误。PHP程序的一个优点是在程序出错时会给出出错信息,会告诉我们出现了什么错误,哪个文件出错,以及错误出现在哪一行。,3.5技术拓展,语法错误是最容易找出的错误类型,大部分语法错误是由于我们对语法规则不熟悉所致,常见的语法错误有:丢失分号、丢失单双引号、丢失$符号、缺少括号等。(2)运行时错误与语法错误相比,运行时错误更难消除,因为运行时错误不只是与程序文件本身有关,

48、错误可能出现在程序交互过程中与其它事件有关。例如include conn.php;语句本身没有任何错误,但是如果被包含的文件不存在,也会产生以下错误。,3.5技术拓展,下面我们对常见的运行时错误总结如下:包含不存在的文件,调用不存在的函数;读写文件时,硬盘出错或写满,没有操作权限等;操作数据库时,数据库服务器有问题,访问不存在的数据库或者SQL语法错误等;连接网络服务时,中间可能出现许多依赖网络上其它设备或软件的错误。(3)逻辑错误逻辑错误是最难发现和清除的错误类型,因为程序代码完全正确,也能按照逻辑正常运行,但是却得不到预想的结果。这部分错误主要是由于程序逻辑不正确或者程序不完善所致,对于这

49、些错误可以通过各种可能情况的测试来解决。,3.5技术拓展,2.PHP错误级别PHP的错误又可以分为很多级别,根据不同的级别可以采用不同的调试方法,错误级别具体如表所示。,3.5技术拓展,通过修改PHP的配置文件php.ini可以控制是否显示错误及显示错误的级别。程序开发过程中,如果不希望显示某种错误,可以通过PHP配置文件进行修改。PHP配置文件相关错误指令设置如下所示:display_errors=Off/不显示错误display_errors=On/显示错误error_reporting=E_ALL/显示所有级别的错误error_reporting=E_ALL&E_NOTICE/不显示no

50、tice错误error_reporting=E_ALL&(E_NOTICE|E_NOTICE)/不显示notice和warning错误notice和warning错误不会终止程序的运行,在开发过程中如果不希望显示,可以将其屏蔽。除了修改配置文件外,使用ini_set()函数和error_reporting()函数也可以控制是否显示错误和错误级别。,3.5技术拓展,3常见错误的调试方法程序的调试方法有很多种,也可以借助专业的调试工具进行调试。下面我们介绍几种基本的调试方法,已解决商城开发过程中可能出现问题。显示错误提示信息,努力看懂错误信息;通过使用注释语句,按照排除发对程序进行调试;得不到正确

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号