




已阅读5页,还剩82页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PHP MySQL动态网页技术教程 第3章商城开发基础知识 3 1项目引导 PHP基础知识 在本章 我们主要学习PHP变量 常量 运算符与表达式 各种流程控制语句 函数 数组以及PHP表单处理等内容 在学习这些内容的基础上 完成一个模拟的图书订单程序 3 2项目分析 PHP是非常流行一门Web开发语言 它的应用前景十分广阔 PHP几乎可以胜任目前所有B S模式应用程序的开发 从一般的留言板 新闻系统到大型的论坛系统 电子商务平台 网上办公系统 信息管理系统等 除此之外PHP还可以应用于桌面应用程序的开发和命令行脚本 学习PHP语言应该讲究方法和策略 别人的学习经验可以借鉴 但不能照抄照搬 学习PHP的一些经验 由于PHP主要用户Web开发 所示学习PHP之前应熟悉HTML CSS等语言 掌握PHP环境搭建方法 理解PHP网站运行原理 熟练使用一两种编辑工具 熟练掌握PHP大量函数的使用 理解OOP 模板 框架等技术 掌握MySQL数据库知识 尝试结合PHP和MySQL开发应用程序 掌握PHP编程规范 养成一个良好的编程习惯 充分利用网络学习资源 多向他人请教 明确目标 坚定信念 理论联系实际 PHP程序员成长之路是一个循序渐进 由浅入深的过程 只有拥有一颗持之以恒的决心 不断从失败中总结经验教训 不抛弃 不放弃 相信自己一定能够赢得最后的胜利 本章是以讲解PHP基础知识为主 主要包括以下内容 PHP基本语法 数据类型 常量与变量 运算符和表达式 控制语句 条件语句和循环语句 函数 库函数和自定义函数 数组 一维数组 多维数组和数组函数 PHP程序的错误与调试 3 3技术准备 3 3 1基本语法1 PHP标记XML标记风格 短标记风格 ASP标记风格 Script标记风格 echo HelloWord 3 3技术准备 2 输出语句echo语句是PHP程序中最常用的输出语句 它将传递给它的字符回显到浏览器上 语法格式 echo 显示内容 例3 1 使用输出语句 输出 同学 你好 欢迎学习PHP 3 3技术准备 3 注释语句PHP注释语句有三种格式 使用 符号开始 以 符号结束的多行注释 使用 双斜线开始的单行注释 使用 开始的单行注释 例3 2 注释语句 3 3技术准备 4 变量变量是程序中数据的临时存放场所 是程序设计过程中可以改变的量 一个程序因为计算不同而需要不同个数的变量 此时就必须为每一个不同的变量赋予不同的名称以示区别 1 变量的命名与赋值在为一个变量命名时 需要遵循以下命名规则 变量名必须以 符号开头 例如 bvtc student 变量名的第一个字符必须是字母或者下划线 后面可以是字母 数字或者下划线组合 变量名严格区分大小写 如果两个变量只是大小写不同 则被视为两个变量 在PHP中 变量命名通常与变量赋值一起进行 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 输出一个十六进位字符 x52 3 3技术准备 3 数据类型转换将变量的值从一种数据类型变为另一种数据类型的过程称为类型转换 在PHP程序中 有时会出现对多种数据类型进行混合处理的情况 如把一个string类型的数字字符串数据转换成一个integer类型的数据 此时就必须考虑数据类型之间的转换问题 PHP中数据类型之间的转换分为自动转换和强制转换两种 自动转换适用于四种标量类型 在不同数据类型的变量混合运算时 如果参与运算的变量类型不同 则由系统按规定自动转换成同一类型 然后再运算 如 会将字符转换成数值 会将数字转换为字符 例3 5 数据类型自动转换示例 结果为510aecho int i string 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 常量在程序设计过程中 数值始终不变的量 称之为常量 一个常量可以保存一个值 但是常量值一旦被设定后 在脚本的其它地方就不能再更改该常量的值 PHP中有两种常量 即系统预定义常量和自定义常量 1 系统预定义常量PHP为脚本程序的正常运行预定义了许多系统常量 这些系统常量可以很好的帮助我们了解系统当前的情况 而且这些常量可以随时被调用 不过很多系统常量都是由不同的扩展库定义的 只有加载了这些扩展库后才能使用 扩展库可以动态加载 也可以在编译时包含进去 常用的预定义常量 FILE 该常量存放PHP文件的完整路径和文件名 如果用在包含文件中 则返回包含文件名 LINE 该常量存放PHP程序中的当前行号 如果用在包含文件中 则返回在包含文件中的当前行号 PHP 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 函数自行定义所需要的常量 其语法 booldefine string name mixed value boolcase insensitive name 指定常量的名称 value 指定常量的值 insensitive 指定常量名称是否区分大小写 如果设置为true则不区分大小写 如果设置为false则区分大小写 如果没有设置该参数 则取默认值false 3 3技术准备 创建常量时 需要注意以下几点 按照惯例常量名称都由大写字母组成 这样容易区分常量与变量 可以使代码变得更容易阅读和维护 常量只能用define 函数定义 不能通过赋值语句赋值 常量可以不用理会变量范围的规则 而在任何地方定义和访问 常量的值只能是标量 常量前面没有美元符号 例3 8 定义常量 显示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 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 赋值运算符基本的赋值运算符 将等号右边的值赋给等号左边的变量 称为 被赋值为 或者 被设置为 但是不能将其读为 等于 例如 Pqty 6 复合赋值运算符 3 3技术准备 4 位运算符位运算符可以将一个整型变量当作一系列的位 bit 来处理 在PHP中提供了以下六种位运算符 3 3技术准备 5 比较运算符PHP中还提供了一些用于进行比较的运算符 通过比较两个数据的大小来返回真值或者假值 通常用在条件判断和循环处理中 3 3技术准备 6 逻辑运算符逻辑运算符用来组合逻辑条件的结构 多用于条件控制语句中的条件组成 例如 我们对大于20小于40的变量做相应的操作 那么我们在条件组成上可以用 与 操作 如 int var1 20 int var1 40 在PHP中提供了以下几种逻辑运算符 3 3技术准备 7 其他运算符三元运算符 语法格式为 condition value1 value2运算法则 首先判断条件condition 如果条件condition为真 则返回value1结果 如果条件condition为假 则返回value2结果 实际上三元运算符和if语句作用相似 但是可以让程序更为简单和高效 其他运算符 3 3技术准备 8 运算符的优先级与结合性 3 3技术准备 7 表达式表达式是由变量 常量 运算符等按一定的规则组成 每个表达式都返回唯一的运算结果 运算结果的类型由数据和运算符决定 根据表达式中运算符类型不同 可以把表达式分为 赋值表达式 算术表达式 逻辑表达式 位运算表达式 比较表达式 字符串连接表达式等等 3 3技术准备 3 3 2条件结构任何复杂的程序设计都离不开流程控制语句 这些语句决定了程序的走向 PHP语言的流程控制由三种基本结构组成 即顺序结构 选择结构和循环结构 如果程序的执行顺序是从上到下依次逐行逐句执行 那么这个流程就叫做顺序结构 在这种结构中程序的执行流程不出现反复和分流 这是最常见和最简单的程序流程控制结构 如果程序需要分流 那么就需要使用条件语句进行判断 根据判断结果选择执行不同的分支 PHP中提供了多种形式的条件语句 包括 if语句 if else 语句 if elseif else 语句和switch语句 3 3技术准备 1 if语句 单分支语句 单分支的if语句是最简单的判断语句 可理解为 如果某条件成立则去做某件事情 其语法格式如下 if 条件表达式 语句块 if语句的条件表达式必须用小括号 括起来 小括号中的条件表达式就是执行条件 一般是比较运算符或者逻辑运算符组成的表达式所计算的结果值 即布尔值ture或false 结果为true 执行语句块 结果为false 不执行语句块 语句块 中的语句可以只有一条语句 也可以有多条语句 有多条语句时用大括号 括起来 例3 11 编写程序 实现根据时间不同显示不同的问候语 要求 运行网页时 自动获取当前时间 如果时间是6 12点 显示 您上午好 时间是12 18点 显示 您下午好 时间是18 24点或0 6点 显示 您晚上好 3 3技术准备 2 if else 语句此语句的使用比单分支的if语句使用更广泛 可以理解为 如果某条件成立去做某件事情 否则去做另外一件事情 其语法格式如下 if 条件表达式 语句块1 else 语句块2 如果条件表达式的值为true 则执行if后面的语句块1 如果条件为false 则执行else后面的语句块2 例3 12 编写程序 实现根据输入年份 判断是否为闰年 并且显示2月的天数 闰年的判断条件是年份能被4整除而不能被100整除或者年份能被400整除 3 3技术准备 3 if elseIf语句 多分支结构 if else语句只能提供两种选择 但在某些情况下 遇到两种以上的选择 比如成绩在90分以上 输出优秀 75 90分之间 输出良好 60 75分之间输出及格 60分以下输出不及格 则需要使用if多分支结构语句 其语法格式如下 if 条件表达式1 语句块1 elseif 条件表达式2 语句块2 elseif 条件表达式n 语句块n else 语句块n 1 该语句按顺序依次判断条件表达式1 条件表达式2 如果第一个条件为false 就测试其他的条件 一旦满足某个条件 就执行相应的语句块 如果所有的if和elseif语句中的条件都为false 则执行else对应的语句块 3 3技术准备 例3 13 编写程序 实现根据输入的成绩显示优秀 90 100 良好 75 90 及格 60 75 或不及格 0 60 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分支下的语句块 并通过break语句跳出switch分支结构 当所有条件均不匹配时 则执行default后的语句块n 1 并跳出分支switch 若无default语句 则直接跳出switch结构 表达式与常量表达式的数据类型必须匹配 任意两个case的条件不能相同 每个case条件下的语句必须有break语句 不允许执行完一个case语句后 再执行第二个case语句 除非这个case语句是空 例3 14 使用date 函数获取当前星期信息 输出相应的中文信息 程序将通过date 函数获取当天的星期信息 输出相应的中文星期 3 3技术准备 3 3 3循环结构循环是指在指定条件下 多次重复执行一组语句的结构 重复执行的语句被称为循环体 在程序设计中 当需要重复执行一组计算或操作时 可通过循环语句来实现 PHP中的循环语句包括 while循环语句 do while循环语句 for循环语句等 1 while循环当循环次数不确定时 可以使用while循环语句 根据指定的条件来执行循环 其语法格式如下 while 条件表达式 循环体 条件表达式 的结果是一个布尔值 当条件为true时 执行循环体语句 如果条件为false 就跳出循环体 执行循环体后面的语句 在while循环语句中 一定要有修改循环条件的语句 并由此决定是否进行下一轮的循环 如果循环体中没有修改循环条件的语句 可能会造成死循环 例3 15 使用while循环语句计算1到100的累加和 其结果为 1 2 3 100累加和 3 3技术准备 2 do while循环do while循环语句也用于循环次数不定的循环 与while语句相似 但稍有区别 语法格式如下 do 循环体 while 条件 这是后判断条件的当型循环语句 先执行循环体 然后判断条件 决定是否继续执行循环 如果条件为true 就返回到do位置并执行循环体 如果条件为false 则终止循环 该循环语句第一次进入循环体是无条件的 即使第一次判断时条件就为false 也要执行一次循环体 注意 在循环体中也要有修改条件的语句 才能够跳出循环 3 3技术准备 例3 16 使用do while循环语句计算1到100的累加和 例3 17 while与do while语句结构区别示例 0 echo 执行了while循环体 do echo 执行了dowhile循环体 while i 0 3 3技术准备 3 for循环for循环语句常用于循环次数已知的情况 其语法格式如下 for 表达式1 表达式2 表达式3 循环体 for语句的执行过程为 首先计算表达式1的值 判断表达式2的值是true还是false 如果为真则执行循环体 然后转到 否则转到 结束循环 计算表达式3的值 然后转到步骤 结束循环 for语句中的表达式1 表达式2和表达式3都可以省略 但是分隔表达式的分号不能省略 例如格式for 格式 省略表达式1 要在循环体外给变量赋初值 省略表达式2 要在循环体内添加跳出循环的语句 省略表达式3要在循环体内添加改变变量值的语句 例3 18 使用for循环语句计算1到100的累加和 3 3技术准备 4 其他循环控制语句在正常循环执行语句体的时候 难免在某些特殊情况下需要终止循环 这时候需要一些特殊的语句来使程序流程跳出循环或者停止本次循环操作 PHP中提供了两条语句break和continue 来实现上述操作 break语句的作用是跳出整个循环 执行后续代码 而continue语句则是跳出本次循环 继续执行下一次循环操作 3 3技术准备 5 循环嵌套在一个循环体内又包含了另一个完整的循环结构 称之为循环嵌套 循环嵌套主要由while循环 dowhile循环和for循环3种循环自身嵌套和相互嵌套构成 循环嵌套的外循环应 完全包含 内层循环 不能发生交叉 内层循环与外层循环的变量一般不应同名 以免造成混乱 嵌套循环要注意使用缩进格式 以增加程序的可读性 例3 19 使用循环语句输出 九九乘法表 3 3技术准备 3 3 4函数在程序执行过程中 通常会遇见需要重复用到的代码段 如果在每次用到该代码段的时候 都要手动编写代码 不仅浪费时间 而且会使程序变得冗长 错误查找困难 可读性差 可维护性降低 同C语言类似 PHP语言同样也提供了一种可以将重复的代码段打包使用的方法即函数功能 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 对1 1 1 9 1 1三个数进行下取整 例3 25 对2 4 2 5 2 045三个数进行四舍五入 例3 26 求一组数中的最小数 例3 27 求一组数中的最大数 例3 28 使用rand函数产生7个0 9的随机数 例3 29 使用number format函数 3 3技术准备 2 自定义函数 1 函数定义在PHP中 函数使用关键字function来定义 通常由函数名称 参数 函数体和返回值4部分构成 自定义函数的语法格式如下 function函数名 参数1 参数2 参数3 函数体 return函数返回值 创建函数时需要注意 函数名称用来标识某个函数 PHP中不允许函数重名 在命名函数时应注意 函数名称只能包括数字 字母和下划线 并且不能以数字开头 PHP自定义函数不能与PHP内置函数同名 PHP自定义函数不能与PHP关键字同名 函数体必须用大括号 括起来 即使只包含一条语句 函数可以没有返回值 例3 30 自定义一个累加函数 实现从0到n的累加和 3 3技术准备 2 函数调用在PHP中 可以直接使用函数名称进行函数的调用 如果函数带有参数 调用时需要传递相应参数 调用系统函数和自定义函数的方法是相同的 可以使用下面的语法格式 函数名 实参列表 实参列表要与函数定义时的形参列表相对应 如果实参数量比形参数量多 则多余的实参会被自动屏蔽掉 如果实参数量比形参数量少 则剩余形参会以空值代替 例3 31 自定义函数 实现从0到n的累加和 使用该函数 计算0加到10的累加和 3 3技术准备 3 参数传递在函数调用过程时 需要向函数传递参数 被传入的参数称为实参 而函数定义的参数称为形参 参数传递的方式主要有按值传递和按引用传递 值传递值传递是参数在调用函数前后不发生改变 传递给函数的只是该参数的值 即在传递参数时函数范围内对该值的任何改变都在函数外部被忽略掉 引用传递如果希望在函数内部修改参数值 且函数外部也能同时改变该参数的值 可以使用引用传递 引用传递参数的方式为在参数前面添加 符号 在引用传递方式中 将实参在内存中的地址传递给相应的形参 形参的值发生改变的同时实参的值也发生相应的改变 3 3技术准备 例3 32 按值传递的函数调用示例 函数外部 number number 显示外部值 3 3技术准备 例3 33 引用传递的函数调用示例 函数外部 number number 显示外部值 3 3技术准备 3 3 5数组1 什么是数组数组是存储一组相关数据的变量 这组数据的类型可以相同 也可以不同 组成数组的这些数据称为数组元素 每个数组元素都有一个编号 这个编号称为数组的键 key 每一个键对应一个值 value 数组中的键可以是整型数 也可以是字符串 以整型数作为键的数组称为索引数组 以字符串或数字和字符串混合作为键的数组称为关联数组 数组元素的键可以有一个或多个 相应的数组分别称为一维数组或多维数组 2 索引数组索引数组是数组中最简单的数组 由一系列元素组成 在默认情况下 数组索引从0开始 例如 表3 10所示图书信息数组 数组变量的名称为 bookinfo 它存储了4个数组元素 例3 34 创建一个索引数组 存储一本书的信息 3 3技术准备 1 创建索引数组数组在使用之前 必需先创建 在php中可以用array 函数方式创建数组 也可以使用为数组元素赋值的方式创建数组 数组本身也是变量 数组的命名规则与其他变量相同 使用array 函数创建 bookinfo数组 使用print r函数显示所有数组元素 直接赋值创建 bookinfo数组 并访问数组元素如果在声明数组时不知道预先声明数组的大小 或在实际编写程序代码时数组的大小可能发生变化 这时需要采用直接对数组元素赋值的方法创建数组 当数组创建完毕后 除了可以使用print r函数显示所有数组元素外 还可以使用数组名加键的方法访问单一的数组元素 键在数组名后面用中括号括起来 例3 35 创建索引数组 bookinfo 然后修改个别元素的值 并显示数组元素 3 3技术准备 2 索引数组遍历数组的遍历是指依次访问数组中的每一个数组元素 直到访问完为止 它是访问所有数组元素常用的操作 在遍历过程中可以完成对数组元素的查询或者其他的运算操作 在PHP中遍历数组的方法有很多种 用的比较多的是for循环结构和foreach循环结构 for循环结构当要遍历的数组是索引数组并且该数组的索引是连续整数时 可以使用for循环结构来遍历数组 例3 36 使用for循环语句遍历索引数组 3 3技术准备 foreach循环结构利用foreach循环语句遍历数组共有两种方法 其语法格式如下 foreach arrayas value dosomething 或者foreach arrayas key value dosomething 语法格式一遍历给定的数组array 在每一次循环中当前数组元素的值赋值给变量 value 并且数组内部的指针向前移动一个单位 语法格式二与语法格式一作用相同 唯一不同之处在于当前数组元素的键名即索引序号将赋值给普通变量 key 例3 37 使用forach循环语句遍历索引数组 3 3技术准备 3 关联数组创建数组时 为了增加数组元素的可读性 可以把每个数组元素的key值使用有意义的单词 汉字来表示 key和value之间用 来连接 这样的数组被称为关联数组 与访问索引数组相似 关联数组也可以用数组名加键的方法访问数组元素 1 创建并访问关联数组 例3 38 创建一个图书信息关联数组 2 遍历关联数组由于关联数组的key不是数字 所以无法用for循环语句遍历关联数组 但是可以使用foreach来遍历 例3 39 将图书信息数组 bookinfo定义成关联数组 并遍历该数组 输出数组元素的key值和value值 3 3技术准备 4 多维数组 1 二维数组在php中 除了可以创建一个key值的一维数组 还可以创建多于1个key的二维数组及多维数组 多维数组的实质是数组中的数组元素仍然是数组 2 多维数组超过二维的数组统称为多维数组 它可以存储更加复杂的数据内容 PHP中多维数组与一维数组的区别在于多维数组有多个下标 其用法基本上是一致的 例3 40 创建二维数组 存入多条图书信息 并以二维表的形式显示数组内容 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 函数按照数组的键名进行排序 使用ksort 函数和krsort 函数 例3 45 数组按key值排序 3 3技术准备 2 数组判断函数 确定元素是否在数组中在PHP中 可以使用in array 函数直接确定某元素是否在数组中 如果数组中存在该元素则in array 函数会返回ture 否则返回false 该函数的语法格式如下 boolin array mixed needle array haystack bool strict 在上述语法中涉及到的参数说明如下 needle 指定搜索数据 haystack 指定要进行搜索的数组 strick 该参数为布尔类型的 其默认值为false 如果该参数设置为true 则判断搜索数据与数组值的类型是否相同 3 3技术准备 判断某个自定义变量是否是数组在PHP中 可以使用is array 函数判断某个自定义变量是否是数组 如果是数组 则返回true 否则返回false 语法格式如下 is array arr 例3 46 判断数组函数 3 数组查找函数使用array search 函数可以在数组中查找一个值 返回这个值所对应的键名即索引 如果没有找到 则返回false 语法格式为 array search needle array 其中 needle为想要查找的值 array为需要查找的数组 整个函数返回数组 array中值为 needle的数组元素的键名即索引 例3 47 数组查找 3 3技术准备 3 3 6PHP表单处理1 HTML表单组成 1 表单表单是用户和网站进行交互的主要方式 表单由 标记对来创建 标记具有name action method等属性 表单标记的格式为 其属性作用如下 name 表示表单的名称 在同一个页面中 表单具有唯一的名称 action 指定将表单数据发送到那个程序页面进行处理 其值为处理程序页面的URL地址 如果其值为空 则将表单数据提交到当前页面 method 指定把数据提交的方式 其值可以为get或post get方式是将表单中的数据追加到URL后面 以URL参数的方式发送 post方式是将表单中的数据在HTTP报文中以隐藏的方式发送 由于get方法传输的数据量有限 并且安全性低 所以一般选用post方法 3 3技术准备 2 表单域表单域包含文本框 密码框 隐藏域 多行文本框 复选框 单选框 下拉选择框和文件上传框等 用于采集用户输入或选择的数据 下面以文本框为例 介绍表单域的常用属性 文本框是一种让访问者自己输入内容的表单对象 通常用来填写简短的信息 如用户名 地址等 其格式为 其属性作用如下 type 表示表单对象的类型 如type text 表示该对象是单行文本输入框 type password 表示该对象是密码框 name 表示文本框的名称 要保证数据的准确采集 名称必须独一无二 size 表示文本框的宽度 其单位是单个字符宽度 maxlength 表示该文本框最多可以输入的字符数 value 表示文本框的初始值 3 3技术准备 3 表单按钮表单按钮包含提交按钮 复位按钮和一般按钮 提交按钮用来将输入的信息提交到服务器 复位按钮用来重置表单 一般按钮用来控制其他定义了处理脚本的处理工作 提交按钮 submi表示该按钮是提交按钮 复位按钮 reset表示该该按钮是复位按钮 一般按钮 button表示该按钮是一般按钮 2 接收表单传值PHP中使用全局变量 GET和 POST来接收表单中提交的数据 在PHP程序的任何部分都可以调用这些全局变量 例3 48 创建如图注册页面 通过 GET和 POST接收用户输入的内容 3 4项目实施 当当网购物过程中 在图书展示页面选择图书 单击 购买 按钮 将图书放入购物车中 在购物车管理页面单击 结算 按钮 进入订单处理页面生成订单 用户进入订单管理页面 可以查看订单的信息 我们将上述过程进行简化 将图书订单项目分成两步 选择图书和生成 查看订单 这里我们需要创建两个PHP程序页面 图书购买页面和订单查看页面 图书购买页面负责收集购买图书的信息 订单查看页面负责接收购买的图书信息 通过计算处理 最终将订单信息展示给用户 1 创建购买图书页面图书购买页面需要告诉用户 该网上书店可以提供哪些图书 用户可以选购自己需要的图书 并可以填写选购图书的数量 如下图所示 3 4项目实施 3 4项目实施 图书购买页面 buy php 代码如下所示 书名数量网页设计与制作CSS网页设计标准教程PHP开发请选择您在哪个区域北京河北上海香港澳门某区 3 4项目实施 2 编写生成订单程序表单处理程序接收购买图书纤细 实现购买数量的非空验证和一个图书折扣算法 如果数量超过一个限定值就可以有折扣 折扣方案如下所示 购买少于10本 没有折扣购买10 49本 5 的折扣购买50 99本 10 折扣购买100 199本 15 折扣购买本200以上 20 折扣 3 4项目实施 网上书店 php wqty POST Wqty 定义变量来访问表单数据 cqty POST Cqty pqty POST Pqty area POST area 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 显示您所处位置 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 您的折扣 discount 输出折扣echo 您需要支付人民币 number format totalamount 2 元 输出总金额 else echo 您没有订书 不存在您的订单 echo 您可以点击返回按钮回到上一页重新订书 谢谢 echo 空订单返回上一页 3 4项目实施 运行程序 输入如页面数据 单击 提交 按钮 将进行处理数据 得到如下图所示页面结果 3 5技术拓展 3 5 1PHP错误与调试在前面编程过程中 总是难免出现各种各样的PHP程序错误 下面我们学习一些关于PHP错误及调试的技巧和技术 1 PHP错误类型无论使用什么编程语言 通常都会遇到语法错误 运行时错误和逻辑错误3中类型 下面我们分别进行介绍 1 语法错误任何语言都有一定的语法规则 例如PHP语法要求语句以分号结束 函数多个参数之间用逗号隔开等 如果语句不符合这些规则就会出现语法错误 例如下面程序中第一条语句没有加分号 程序会出现语法错误 PHP程序的一个优点是在程序出错时会给出出错信息 会告诉我们出现了什么错误 哪个文件出错 以及错误出现在哪一行 3 5技术拓展 语法错误是最容易找出的错误类型 大部分语法错误是由于我们对语法规则不熟悉所致 常见的语法错误有 丢失分号 丢失单双引号 丢失 符号 缺少括号等 2 运行时错误与语法错误相比 运行时错误更难消除 因为运行时错误不只是与程序文件本身有关 错误可能出现在程序交互过程中与其它事件有关 例如include conn php 语句本身没有任何错误 但是如果被包含的文件不存在 也会产生以下错误 3 5技术拓展 下面我们对常见的运行时错误总结如下 包含不存在的文件 调用不存在的函数 读写文件时 硬盘出错或写满 没有操作权限等 操作数据库时 数据库服务器有问题 访问不存在的数据库或者SQL语法错误等 连接网络服务时 中间可能出现许多依赖网络上其它设备或软件的错误 3 逻辑错误逻辑错误是最难发现和清除的错误类型 因为程序代码完全正确 也能按照逻辑正常运行 但是却得不到预想的结果 这部分错误主要是由于程序逻辑不正确或者程序不完善所致 对于这些错误可以通过各种可能情况的测试来解决 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 不显示notice错误error reporting E ALL E NOTICE E NOTICE 不显示notice和warning错误notice和warning错误不会终止程序的运行 在开发过程中如果不希望显示 可以将其屏蔽 除了修改配置文件外 使用ini set 函数和error reporting 函数也可以控制是否显示错误和错误级别 3 5技术拓展 3 常见错误的调试方法程序的调试方法有很多种 也可以借助专业的调试工具进行调试 下面我们介绍几种基本的调试方法 已解决商城开发过程中可能出现问题 显示错误提示信息 努力看懂错误信息 通过使用注释语句 按照排除发对程序进行调试 得不到正确的结果时 可以通过输出变量的值跟踪变量的变化 数据库操作出错时 可以打印出 语句 跟踪 语句的变化 在MySql客户端工具运行 语句 查看SQL语句错误类型 使用 可以抑制单个错误 使用die 函数可以终止脚本继续执行 3 6本章小结 本章是开发图书商城网站的语言基础 主要介绍了PHP的数据类型 常量与变量 运算符和表达式 控制语句 函数及数组等开发网站必备的基础知识 PHP支持8种原始数据类型 包括4种标量类型 2种复合类型和2种特殊类型 数据类型有两种存在方式 即常量和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中分子与细胞课件
- 高三物理最后一课课件
- 高三家长会课件
- 高一政治课件资本主义
- 知识产权保护劳动合同补充协议书变更
- 《离婚冷静期间婚姻法律咨询与代理服务合同》
- 汽车美容店租赁合同经营许可及监管协议
- 智能家居研发合伙协议退伙技术成果转化协议
- 智能制造工程合同签订关键要素及法律风险防范
- 离婚诉讼中子女抚养费及扶养费调整协议书
- 【一例重症肺炎的个案护理案例报告6000字(论文)】
- 员工培训体系优化研究
- 冯友兰-人生的境界课件
- 传热学全套PPT完整教学课件
- 部编版六年级道德与法治上册第5课《国家机构有哪些》优秀课件
- 高中心理健康教育北师大版高二全册第6课《温故知新》省级名师优质课教案比赛获奖教案示范课教案公开课教案
- 瑞美检验医生工作站操作手册
- 欧美电影文化(上海工程技术大学)【智慧树知到】网课章节答案
- 双人心肺复苏
- 全过程工程咨询服务大纲
- T-GDPA 3-2021 奥利司他胶囊质量标准
评论
0/150
提交评论