版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、php 程序设计 实验指导书 主编教师:史朝阳 郑大软件学院 php 程序设计实验指导书 1 目录目录 实验一实验一 架设架设 windows 下的下的 php 开发测试服务器开发测试服务器 .4 0. 实验准备实验准备.4 0.1 系统环境和 php 相关软件、开发工具.4 0.2 实验目的.4 0.3 实验中的路径说明.4 1. php 的安装和配置的安装和配置.4 1.1 安装.4 1.2 配置.5 2. apache 的安装和配置的安装和配置.5 2.1 安装软件.5 2.2 配置服务.5 3. apache : web 服务的安装和启动服务的安装和启动.6 4. 测试测试 apach
2、e 服务器对服务器对 php 的支持能力的支持能力.6 5. mysql 的安装和启动数据库服务器的安装和启动数据库服务器 .6 6. 测试测试 php 与与 mysql 的协同的协同 .7 实验二实验二 php 基本语法实验基本语法实验.8 0 实验准备实验准备.8 0.1 实验环境和相关工具软件.8 0.2 实验目的和内容.8 0.3 实验中的约定.9 1 词法结构词法结构.9 1.1 大小写敏感.9 1.2 语句和分号.10 1.3 注释.10 1.4 标识符(常量标识符).11 2 数据类型数据类型.11 2.1 字符串.11 2.2 布尔型.12 2.3 数组型.12 2.4 对象型
3、.13 2.5 资源型.13 2.6 数据类型的检测.15 3 变量变量.15 2 3.1 变量的变量.15 3.2 变量的作用域.17 3.3 垃圾收集.18 4. 表达式和操作符表达式和操作符.20 4.1 隐式类型转换.20 4.2 字符串连接操作符.21 4.3 自增自减操作符.22 4.4 类型转换操作符.22 4.5 其他操作符.23 5.流控制语句流控制语句.23 5.1 if语句.23 5.2 switch语句.26 5.3 while语句.27 5.4 for语句.28 5.5 foreach语句.28 5.6 exit语句.28 5.7 return语句.28 6.包含代码
4、包含代码.28 7.在页面中嵌入在页面中嵌入 php.30 实验三实验三 html 基础实验基础实验.31 0 实验准备实验准备.31 0.1 实验环境和相关工具软件.31 0.2 实验目的.31 0.3 实验内容.31 0.4 实验中的说明.32 1. html 基本架构基本架构.32 2. 最简单的表单和表单对象的使用最简单的表单和表单对象的使用.32 实验四实验四 mysql 基础实验基础实验 .33 0. 实验准备实验准备.33 0.1 实验环境和相关工具软件.33 0.2 实验目的.33 0.3 实验内容.33 实验五:系统建模与前台(新闻列表实验五:系统建模与前台(新闻列表/新闻查
5、看)设计新闻查看)设计.34 0. 实验准备实验准备.34 0.1 实验环境和相关工具软件.34 郑大软件学院 php 程序设计实验指导书 3 0.2 实验目的和内容.34 1. 实验具体环节实验具体环节.34 1.1 系统建模.34 1.2 系统实现.35 实验六:后台管理(新闻管理实验六:后台管理(新闻管理/人员管理)程序设计人员管理)程序设计.37 0. 实验准备实验准备.37 0.1 实验环境和相关工具软件.37 0.2 实验目的和内容.37 1. 实验具体环节实验具体环节.37 1.1 新闻录入程序设计:.37 1.2 新闻修改程序设计:.38 1.3 人员信息添加程序设计:.38
6、实验七:后台管理(身份认证与后台系统集成)程序设计实验七:后台管理(身份认证与后台系统集成)程序设计.39 0. 实验准备实验准备.39 0.1 实验环境和相关工具软件.39 0.2 实验目的和内容.39 1. 实验具体环节实验具体环节.40 1.1 认证界面denglu.php:.40 1.2 认证程序jiancha.php 在数据库中检查具有该帐号和密码的用户是否存在,存在则取出该用户资料 (如renyuanid)存到session变量中去,然后转向houtaiguanli.php。.40 1.3 身份把关程序.40 1.4 后台管理集成界面(总界面)houtaiguanli.php 集成
7、后台管理所有功能,是通向各管理功能程序的 领航处、出发点。 实现很简单,使用 html 的超链接技术即可实现。.41 1.5 新闻系统后台程序关系流程图.41 4 实验一 架设 linux 下的 php 开发测试服务器 0. 实验准备 0.1 系统环境和 php 相关软件、开发工具 操作系统:linux(red hat) 具体到的机房环境,请在 linux 环境下做 web 服务器:apache 2.0.63 (压缩包文件:apache_2.0.63-win32.exe) php:php5.2.11 (压缩包文件:php-5.2.11-win32.zip) 数据库:mysql 5.1.39 (
8、压缩包文件:mysql-essential-5.1.39-win32.zip) 脚本编辑器: editplus(已安装好):图形化编辑环境,速度慢,功能多,常用于复杂网页设计 注: php 相关软件、开发工具的获得:相关软件、开发工具的获得:在我的 上下载 0.2 实验目的 能够快速部署 linux 下的开发测试服务器环境,以满足同学们在宿舍、家中自己机器上学习、研究和开发 php 程序设计的需要或是实际工作的需要。 0.3 实验中的路径说明 为说明问题的简单起见,路径为比较简单的示例路径,但已经过测试。实际运用时,路径完全可根据自 己需要设定。 1. p
9、hp 的安装和配置 1.1 安装 下载 php-5.2.5-win32.zip 软件包,不需要安装,在 c 盘根目录下建立文件夹 c:php 。将软 件包解压缩到本目录下。 在 c:php 目录下找到 php.ini-dist 文件,将其名字改为 php.ini ,这是 php 的配置文件。 修改 php.ini 文件,过程如下:(1) 找到 extension_dir=”./” ,改为 extension_dir=”c:/php/ext” (2) 找到 “ ;extension=php_mbstring.dll ”去掉前面的“;”(3) 找到 “ ;extension=php_mysql.d
10、ll ” 去掉前面的“;”(4) 找到 “ ;extension=php_mysqli.dll ” 去 掉前面的“;” 修改完 php.ini 文件后,保存该文件,并复制到 c:windows 目录下。 将 c:phplibmysql.dll 复制到 c:windowssystem32 目录下 注:操作系统安装目录,具体位置见表1 郑大软件学院 php 程序设计实验指导书 5 表 1:操作系统安装目录 操作系统操作系统安装目录 1.2 配置 通过修改 php.ini 中的参数来实现。对 mysql 而言,若无特殊要求,一般无须配置。因为 php 在 php.ini 中已经做好了对 mysql
11、的配置,所以一般无须修改。 2. apache 的安装和配置 2.1 安装软件 双击 apache_2.0.63-win32.exe,按照提示,选择 custom 安装方式,然后一路默认,即完成安装。 注意:如果您的电脑安装了 iis,请先到控制面板关闭 iis 服务,因为 iis 服务器与 apache 服务器都使用 一个端口。 2.2 配置服务 单击开始-程序- apache http server 2.2- configure apache server- edit the apache httpd.conf configuration file,打开 apache 的配置文件 http
12、d.conf,按表 2 提示进行配置: 注意:每处的配置要想起作用,必须将行首的#号(注释符号)去掉;表示一个或多个空格 表 2 apache 配置 序号参数名和示例参数值配置方法说明 bindaddress(你所用机器的 ip 地址) 修改地址绑定(指定服务器地址) loadmodulephp5_modulec:/php/sapi/php5apache.dll 添加将 php 配置为 apache 的模块(apache module)方式 port80 修改指定端口 serveradmin(你的邮箱地址,如 ) 修改指明管理员信箱 servernamessl 修改指明主机名称 documen
13、trootd:websitehtdocs 修改web 文档发布主目录 修改该处目录应与 web 文档发布主目录一致 scriptalias/php/c:/php/ addtypeapplication/x-httpd-php.php actionapplication/x-httpd-php/php/php.exe 添加指明脚本路径 指明 php 脚本扩展名 指明 php 脚本解释器程序名 directoryindexindex.htmindex.php 修改指定默认文档 *描述以 httpd.conf 文件的行文顺序进行 *表中路径、地址、主机名、信箱等,实际配置时请根据自己情况进行 按表
14、1 所述,参考 apache 配置文件样本,修改完毕后,保存。 6 测试配置是否成功。 1)在编辑完成后,我们还可以通过 “开始/程序/apache http server 2.2/configure apache server/test configuration来测试配置文件是否有语法错误等。 2)或者打开浏览器敲入:http:/localhost 能否见到服务器到测试页面。能见到则配置成功。 3. apache : web 服务的安装和启动 (1)启动 apache 服务: 单击:开始-程序- apache http server 2.2- control apache service-
15、 start。 (默认情况下,每次操作系统启动时自动启动该服务,可更改) 4. 测试 apache 服务器对 php 的支持能力 测试目的:检验配置后的 apache 服务器是否提供了对 php 脚本的解释能力(支持 php) 用 editplus 编写测试脚本,存为 d:websitehtdocsceshi.php,内容为: 说明:phpinfo()是 php 内置函数,用来显示 php 和 apache 配置信息,在浏览器中敲入 http:/localhost/ceshi.php,回车后若显示类似图 1 的 php 配置页面(以 winxp 下为例) ,则说明你的 apache 服务器已经
16、支持 php 脚本,能够解释 php 脚本了;若不显示类似画面,则配置有误,此时你的 apache 不能够解释 php 脚本,需重新配置。 图 1 5. mysql 的安装和启动数据库服务器 将 mysql-essential-5.1.39-win32.zip 解压缩后,双击 setup.exe,按照提示,选择 custom 安装方 式,然后一路默认,遇到输入密码的地方,输入 123 作为密码。 测试安装是否成功。单击“开始” ,选择“mysqlmysql server5.1mysql command line client” ,会出现如下图所示的窗口,然后输入 root 密码,根据提示操作即
17、可 郑大软件学院 php 程序设计实验指导书 7 6. 测试 php 与 mysql 的协同 php 方面:准备测试脚本方面:准备测试脚本 connect.php,存放在,存放在 d:websitehtdocs 下,其内容为:下,其内容为: 程序 2-13: ? $connection=mysql_connect(,root,123) or die(不能连接到 mysql 数据库:.mysql_error(); echo 已经成功连接 mysql 数据库; mysql_select_db(test)or die(不能选择数据库); echo 连接test数据库已经成功; ?
18、(1)测试步骤 在浏览器地址栏输入:http:/localhost/connect.php,回车,显示如图 2 所示,则表明 php 与 mysql 能 够协同工作了。 图 2 8 实验二 php 基本语法实验 0 实验准备 0.1 实验环境和相关工具软件 具体到的机房环境,请在 windowsxp 环境下做本实验: 操作系统:windowsxp web 服务器:apache 2.0.63 默认发布文档路径:c:apachehtdocs php:php5.2.11 安装路径:c:php 数据库:mysql 5.1.39 使用默认路径 脚本编辑器: 记事本 或 editplus-v3.11.46
19、3h 或 macromedia dreamweaver mx 中文版 注意:注意:使用以上脚本编辑器,若要保存为.php 文件,必须在保存时指明扩展名为.php 尤其是记事本,必须在保存时,单击“保存类型”下拉框,选择“所有文件(*.*)”类型,然后指定 文件扩展名是.php,单击“保存”按钮后,保存的文件才能保证是.php 文件。常见错误是直接保存,导致 保存的文件其实是文本文件,如 abc.php.txt 等以.txt 为扩展名的文本文件。 0.2 实验目的和内容 实验目的:熟练掌握 php 语言的基础语法 实验内容:从 7 个方面完成 php 基本语法实际体验,分列如下: 一、词法结构
20、大小写 语句和分号 注释 标识符 二、数据类型 字符串型 布尔型 数组型 对象型 资源型 各种数据类型的检测 三、变量 变量的变量 变量的作用域 郑大软件学院 php 程序设计实验指导书 9 垃圾收集:变量的内存管理 四、表达式和操作符 隐式类型转换 字符串连接操作符 自增和自减操作符 类型转换操作符 其他操作符 五、流控制语句 if 语句 switch 语句 while 语句 for 语句 foreach 语句 exit 语句 return 语句(2-12) 六、包含代码 七、在 web 页面中嵌入 php 0.3 实验中的约定 所有实验程序均与讲义中的例子相对应,如程序 1-1.php,对
21、应讲义中的例子例 1-1。 1 词法结构 1.1 大小写敏感 预备知识预备知识 变量区分大小写,内置结构(while,for,if 等)及关键字(echo,class 等)不区分大小写 【2-1】大小写敏感的例子 php 程序 2-1送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中 的结果) 注意:要使运行结果达到真正分行(和注意:要使运行结果达到真正分行(和 html 输出一致)输出一致) ,请将程序,请将程序 2-1 中的中的n 换成换成,即可实现,即可实现, 如下例如下例 【2-1br】修改程序 2-1 后的程序 2-1br,直接实现分行(将程序 2-1 中的n 换成) 10
22、 php 程序 2-1br送到用户浏览器解释后显示的结果(运行结果,显示在 浏览器页面中的结果) ? $name=hello1,world1; $name=hello2,world2; $name=hello3,world3; echo $name=$name; echo $name=$name: echo $name=$name; ? 原因:浏览器不解释(或者说不识别,或忽略)经原因:浏览器不解释(或者说不识别,或忽略)经 php 解释解释n 而成的空白换行,只有遇到而成的空白换行,只有遇到这个这个 html 中的换行标记,才解释成换行。为了直接达到预期换行效果,将不再使用中的换行标记,才解
23、释成换行。为了直接达到预期换行效果,将不再使用n,而是使用,而是使用 1.2 语句和分号 预备知识预备知识 简单语句 复杂语句 分号的省略 【2-2】语句和分号 php 程序 2-2送到用户浏览器解释后显示的结果(运行结果, 显示在浏览器页面中的结果) ? if($a=$b) echo 注意:; /简单语句 echo $a 的值等于$b 的值; /上面部分为复杂语句 echo hello,world; /此处分号可省略 ? 1.3 注释 预备知识预备知识 在必要的地方做注释 注释的形式及各自的适用处:shell 形式(#)、c+形式(/)、c 形式(/* */) 【2-6】c 形式的注释作用
24、php 程序 2-6送到用户浏览器解释后显示的结果(运行结果, 显示在浏览器页面中的结果) some stuff you want to be html. now this is regular html 郑大软件学院 php 程序设计实验指导书 11 1.4 标识符(常量标识符) 预备知识预备知识 使用 define()设置常量标识符 【2-7】使用 define()设置常量标识符 php 程序 2-7送到用户浏览器解释后显示的结果(运行结果, 显示在浏览 显示在浏览器页面中的结果) 2 数据类型 2.1 字符串 预备知识预备知识 字符串的表示 单引号和双引号在字符转义上的不同作用:单引号仅
25、转义反斜杠和单引号 【2-8】单引号和双引号在字符转义上的不同作用 php 程序 2-8送到用户浏览器解释后显示的结果(运行 结果,显示在浏览器页面中的结果) ? $name=”sun shoulong”; /双引号中的变量值将被输出 echo “hi,$name”; echo hi,$name;/单引号中的变量名将被输出, 因为单引号不认为$name 是变量 ? 注意:双引号中的变量,若前面不加反斜杠注意:双引号中的变量,若前面不加反斜杠进行转义(将进行转义(将$原样输出)原样输出) ,则在输出字串的时候将输出变量,则在输出字串的时候将输出变量 中的值中的值 【2-9】单引号仅支持的字符转义
26、:反斜杠和单引号 php 程序 2-9送到用户浏览器解释后显示的结果(运行结果, 显示在浏览器页面中的结果) 12 2.2 布尔型 预备知识预备知识 php 中为 false 值的情况 【2-10】判断布尔值 php 程序 2-10送到用户浏览器解释后显示的结果(运行结果, 显示在浏览器页面中的结果) ? $x=5; $y=”; if($x) echo $x 有一个 true 值; if(!$x) echo $x 有一个 false 值; if($y) echo $y 有一个 true 值; if(!$y) echo $y 有一个 false 值; ? 2.3 数组型 预备知识:预备知识:数组
27、的创建、遍历;键名:数组元素的下标名称,一般是从 0 开始的整数,也可以是字符串; 键值:数组元素中存储的值 【2-11】数组的创建、遍历:发明家记录 php 程序 2-11送到用户浏览器解释后显示的结果(运行结 果,显示在浏览器页面中的结果) edison, rotary engine=wankel, toilet=crapper); */ #遍历数组$person,显示其内容 foreach($person as $name)/访问每个键 echo “hello,$name”; #遍历数组$creator,显示其内容 foreach($creator as $invention=$inve
28、ntor) echo “$invention was created by $inventor”; ? 郑大软件学院 php 程序设计实验指导书 13 2.4 对象型 预备知识预备知识 类:oop 的单元,是包含属性(变量)和方法(函数)的结构定义 类的定义 对象的创建、引用其属性和方法 【2-12】类和对象的简单例子 php 程序 2-12送到用户浏览器解释后显示的结果(运行结果,显 示在浏览器页面中的结果) name=$newname; return $this-name; $ed=new person; $ed-name(edison); printf(“hello,%s”,$ed-na
29、me); $tc=new person; $tc-name(crapper); printf(“look out below,%s”,$tc-name); ? 2.5 资源型 预备知识:预备知识:资源的概念:以数据库应用为例,在同时有众多的数据库连接存在时,要进行查询和关闭连 接等操作,必须指明这些操作是对哪个连接的,所以有必要给每个连接赋予一个标识值,一般是整数。 这种标识值的数据类型称为资源型。 资源的回收:程序结束时资源自动关闭,资源值被回收;作为局部变量的资源,当函数调用结束时,该 变量的值自动被 php 收回;显示地关闭资源 【2-13】类和对象的简单例子 ? /连接数据库 $hos
30、tname=; $username=; $password=; echo 开始建立与服务器的连接; /$server_link 为资源型变量 $server_link=mysql_connect($hostname,$username,$password) or die (连接服务器失败!程序中断执行!); if($server_link) echo 与服务器的连接成功!; echo 开始打开数据库 test; /$db_link 为资源型变量 $db_link=mysql_select_db(test,$server_link) or die (连接数据库失败!程序中断执行!); 14 /d
31、ie 是 exit 的别名,它们的作用是强制中断程序执行 /若程序在这里终止执行,则上面的资源型变量所占内存资源将自动回收(释放资源型变量) echo 打开数据库 test 成功!; echo 开始从数据库 test 的表 abc 中取出数据; /将查询结果存入数组(遍历记录集,将记录集中的数据转到数组) $sql=select * from abc; /$result 为资源型变量 $result=mysql_query($sql,$server_link); $i=0; while($temp_array =mysql_fetch_array($result) $abc_array$i0=
32、$temp_array a; $abc_array $i1=$temp_array b; $abc_array $i2=$temp_array c; $i+; echo 取出数据完毕!; mysql_free_result($result);/释放记录集,这是显式地关闭资源,若程序终止执行,该关闭将自动进行 echo 开始关闭与服务器的连接; /断开数据库连接,这也是显式地使用关闭函数回收资源变量 $db_close=mysql_close($server_link);/ $db_close 为布尔型变量 if($db_close) echo 关闭与服务器的连接成功!; else exit(关
33、闭与服务器的连接失败!程序中断执行!); echo 开始显示数据; /将数组中的数据输出到浏览器(各列以双等号间隔) echo a 列数据=b 列数据=c 列数据; for($i=0;$icount($abc_array);$i+) echo $abc_array$i0.=. $abc_array$i1.=. $abc_array$i2.; echo 显示数据结束,程序执行完毕。; ? php 解释结果(html 输出) (右键单击该页面,在快捷菜单中单击“查看源文件”命令可看到) 送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果) 郑大软件学院 php 程序设计实验指导书
34、15 2.6 数据类型的检测 预备知识预备知识 数据类型检测函数 【2-14】数据类型检测 php 程序 2-14送到用户浏览器解释后显示的结果(运行结果,显示在浏 览器页面中的结果) 3 变量 3.1 变量的变量 预备知识预备知识 变量的概念和作用;变量的声明和使用;变量的变量 【2-15】php 变量无类型检查,无须声明,类型随用随变 16 php 程序 2-15送到用户浏览器解释后显示的结果(运行结果,显 示在浏览器页面中的结果) ? #php 变量无类型检查 $what=fred; echo $what 的值=$what; if(is_string($what) echo $what
35、是字符串型变 量; $what=35; echo $what 的值=$what; if(is_int($what) echo $what 是整型变量 ; $what=array(fred,35,wilma); echo $what 的值为:; foreach($what as $e) echo $e; if(is_array($what) echo $what 是数组型变量 ; ? 【2-16】空变量的例子 php 程序 2-16送到用户浏览器解释后显示的结果(运行 结果,显示在浏览器页面中的结果) 【2-17】变量的变量 php 程序 2-17送到用户浏览器解释后显示的结果(运行结果, 显示
36、在浏览器页面中的结果) ? #变量的变量 $r=i; $r=1; echo 因为$r=$r; echo 所以$r=$r; echo 又因为$r=.$r.; echo 故$r=.$r; echo :-)你明白了吗?; ? 郑大软件学院 php 程序设计实验指导书 17 3.2 变量的作用域 预备知识预备知识 变量按其作用域分为:局部变量、全局变量。静态变量、函数的参数属于局部变量;从局部访问全局变 量的方法;从全局访问局部变量的方法 【2-19】不能从全局(函数外部)直接访问局部变量 php 程序 2-19送到用户浏览器解释后显示的结果(运行结 果,显示在浏览器页面中的结果) 【2-20】从局部
37、访问全局变量,方法 1:使用 global 关键字声明 php 程序 2-20送到用户浏览器解释后显示的结果(运行结 果,显示在浏览器页面中的结果) 【2-21】从局部访问全局变量,方法 2:引用全局变量数组$globals php 程序 2-21送到用户浏览器解释后显示的结果(运行结 果,显示在浏览器页面中的结果) 18 【2-22】使用静态变量的好处::使全局可间接访问到 php 程序 2-22送到用户浏览器解释后显示的结果(运行结果,显示 在浏览器页面中的结果) ? #使用静态变量的方法,强制保留局部变量上 #次调用结束时的值,使全局可间接访问到 function update_coun
38、ter() static $counter=0;/这个$counter 是局部的变 量,声明为静态,并赋初始值 0 $counter+; echo 局部静态变量$counter 这时的值 =$counter; $counter=10;/这个$counter 是全局的变量 update_counter(); update_counter(); echo 全局变量$counter 这时的值=$counter; ? 【2-23】全局不可直接访问局部变量(可通过将局部变量声明为静态的方法,参见 2-22) php 程序 2-23送到用户浏览器解释后显示的结果(运行结果,显示 在浏览器页面中的结果) ?
39、 #函数参数作为一种局部变量,是不能直接被 外部访问的 function greet($name) echo hello,$name; greet(孙寿龙); if($name=null) echo $name 是一个空变量,访问不到!; ? 3.3 垃圾收集 预备知识预备知识 无用变量的收回;php 内存管理;引用计算;写时复制 【2-24】php 的写时复制 php 程序 2-24 郑大软件学院 php 程序设计实验指导书 19 ? #php 通过使用引用计算和写时复制进行内存管理从而节省了时间和内存 #一、写时复制 /对共享同一首地址的多个变量,修改其中一个,如$worker,则此时为$
40、worker 分配新内存空间, /将其新元素内容写入该空间,将其旧元素内容复制到该空间 /这就是写时复制 /发生写时复制,为$worker 开辟新空间,将$worker 最新内容复制到这里,以不影响$other 的内容 $worker1=36; /同时发生引用计算:原$worker 与$other 共享的那个首地址引用的变量名减少 1 个, 只剩下了$other(引用计数减少 1) echo 修改数组$worker 的第二个元素,发生写时复制及引用计算后,; echo 新数组$other 的内容:; foreach($other as $a) echo $a; echo 新数组$worker
41、的内容:; foreach($worker as $b) echo $b; echo 是不是很好玩?; ? php 解释结果(html 输出) (右键单击该页面,在快捷菜单中单击“查看源文件”命令可看到) 送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果) 20 【2-25】垃圾收集:变量的回收使用 unset()回收变量(释放变量) php 程序 2-25送到用户浏览器解释后显示的结果(运行结 果,显示在浏览器页面中的结果) ? #垃圾收集:变量的回收使用 unset()释放变量 echo 从未对$name 赋过值,这时:; $s1=isset($name);/$s1 为
42、false if($s1) echo $name 已存在,其值=$name; else echo $name 不存在,其值=$name; $name=fred; $s1=isset($name);/$s1 为 true if($s1) echo $name 已存在,其值=$name; else echo $name 不存在,其值=$name; echo 现在从内存中释放(删除)$name:; unset($name); $s1=isset($name);/$s1 为 false if($s1) echo $name 已存在,其值=$name; else echo $name 不存在,其值=$n
43、ame; ? 郑大软件学院 php 程序设计实验指导书 21 4. 表达式和操作符 4.1 隐式类型转换 预备知识预备知识 数字间进行字符串拼接的规则;字符串转换数字后的数字值规则 【2-26】数字间进行字符串拼接的规则:数字首先变为字串,然后再拼接 php 程序 2-26送到用户浏览器解释后显示的 结果(运行结果,显示在浏览 器页面中的结果) 【2-27】字符串转换数字后的数字值规则 假定以数字开始,该数字即为转换后的数字值;若未找到数字则转换后的数字值为 0;若开头的数字包含 一个句点或大写或小写的 e,则转换后的数字值为浮点型 php 程序 2-27送到用户浏览器解释后显示的结 果(运行
44、结果,显示在浏览器页 面中的结果) ? #字符串转成数字后的数字值规则 $a=9 lives-1;/8(int) $b=3.14 pies*2;/6.28(float) $c=9 lives.-1;/8(float) $d=1e3 points of light+1;/1101 echo $a=$a; echo $b=$b; echo $c=$c; echo $d=$d; ? 4.2 字符串连接操作符 预备知识预备知识 字符串连接操作符;数字与字串连接时,数字先转换成字串 【2-28】数字在与字符串连接时,先自动变成字符串 22 php 程序 2-28送到用户浏览器解释后显示的结果(运行 结果
45、,显示在浏览器页面中的结果) 类似的,如 2-29: 【2-29】和 2-28 差不多的程序 php 程序 2-29送到用户浏览器解释后显示的结果(运 行结果,显示在浏览器页面中的结果) 4.3 自增自减操作符 预备知识预备知识 数字的自增自减(按数字顺序) ;字母的自增自减(按字母顺序) 【2-30】 php 程序 2-30送到用户浏览器解释后显示的结果(运 行结果,显示在浏览器页面中的结果) ? #字母的自增自减运算 echo 小写字母自增:; $a=a; while($a=z) echo $a+; echo ; echo 大写字母自增:; $a=a; while($a=z) echo $
46、a+; echo ; ? 请编程验证: (该图显示的是部分结果) 郑大软件学院 php 程序设计实验指导书 23 字符串字符串+ ab za spazspba k9l0 4243 4.4 类型转换操作符 预备知识预备知识 类型转换操作符;类型转换的临时性;类型转换的真正实现 【2-31】类型转换的临时性 php 程序 2-31送到用户浏览器解释后显示的结果(运 行结果,显示在浏览器页面中的结果) 【2-32】类型转换的真正实现 php 程序 2-32送到用户浏览器解释后显示的结果(运 行结果,显示在浏览器页面中的结果) ? #转换自身类型并保值 $a=5; if(is_string($a) e
47、cho 开始,$a 是字符串型,值为:$a; $a=(int)$a; if(is_int($a) echo 转换类型并自赋值后,$a 是整型,值为:$a; ? 4.5 其他操作符 预备知识预备知识 错误抑制操作符(例子程序见 2-13) ;三元操作符 【2-33】三元操作符 php 程序 2-33送到用户浏览器解释后显示的结果(运行结果, 显示在浏览器页面中的结果) 24 ? #三元操作符使用的例子 $a=1; $b=2; echo $a=$a,$b=$b; echo $a$b?$a$b:$a 5.流控制语句 5.1 if 语句 预备知识预备知识 if 结构、if-else 结构、if-els
48、e 链接(层进)、if-elseif 结构、if-else-endif 结构 【2-34】使用 if-else-endif 结构 php 程序 2-34送到用户浏览器解释后显示的结果(运 行结果,显示在浏览器页面中的结果) ? #if 语句的使用 echo 常见使用方式:c 语言的方式:; $user_validated=true; if($user_validated) echo 欢迎你!; $greed=1; else echo 对不起,禁止访问!; exit; echo 还可使用 php 提供的另一种方式:if-endif 结构; $user_validated=; if($user_v
49、alidated): /注意冒号 echo 欢迎你!; $greed=1; else:/注意冒号 echo 对不起,禁止访问!; exit; endif; /句尾是分号,不是冒号 ? 【2-35】if 语句的使用:嵌入到 html 中(表单验证) php 程序 2-35送到用户浏览器解释后显示的结果(运行结果, 显示在浏览器页面中的结果) 郑大软件学院 php 程序设计实验指导书 25 欢迎你: 请重新登陆! 【2-36】if 语句的链接(层进)(使用 if-else 结构) php 程序 2-36送到用户浏览器解释后显示的结果(运行结果,显示 在浏览器页面中的结果) 90) print(优秀
50、); else if($fenshu80 else if($fenshu 【2-37】if 语句的链接(层进)(使用 if-elseif 结构) php 程序 2-37送到用户浏览器解释后显示的结果(运行结 果,显示在浏览器页面中的结果) ? #if 语句的链接(层进)(使用 if-elseif 结构) #阅读性比 2-36 好 echo 本程序阅读性比程序 2-36 好,以下是运行结果; $fenshu=61; echo 你的分数是:$fenshu,属于:; if($fenshu90) print(优秀); elseif($fenshu80 elseif($fenshu 【2-38】用 if
51、 结构的 html 输出一般做法 php 程序 2-38送到用户浏览器解释后显示的结果 (运行结果,显示在浏览器页面中的 结果) ? #用 if 结构的 html 输出一般做法 $fenshu=61; echo 以下结果用 if 结构嵌入 html 实现,程序可读性稍差; ? 60) echo 及格;else echo 不及格;? 用三元操作符简化使更简洁的例子见 2-39 【2-39】用三元操作符简化使 2-38 更简洁的例子 php 程序 2-39送到用户浏览器解释后显示的结果 (运行结果,显示在浏览器页面中的 结果) ? #用三元操作符简化使 2-38 更简洁的例子 $fenshu=61
52、; echo 以下结果用三元操作符简化 if 结构实现,程序可读性好; ? ? echo .($fenshu60?及格:不及格).; ? 进一步的拼接字串的例子见程序 2-39a.php 【2-39a】用三元操作符简化使 2-39 更简洁的例子 php 程序 2-39a ? #比 2-39 字串拼接更复杂的例子 $fenshu=61; echo 以下结果用三元操作符结合复杂字串拼接实现,程序可读性一般,但移植性好; echo .($fenshu60?及格:不及格).; ? php 解释结果(html 输出) (右键单击该页面,在快捷菜单中单击“查看源文件”命令可看到) 郑大软件学院 php 程
53、序设计实验指导书 27 送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果) 5.2 switch 语句 预备知识预备知识 switch 的 c 语言形式、switch-endswitch 结构、switch 语句中 case 的合并 【2-40】switch-endswith 结构的用法 php 程序 2-40送到用户浏览器解释后显示的结果(运行结果, 显示在浏览器页面中的结果) 【2-41】case 的合并 php 程序 2-41送到用户浏览器解释后显示的结果(运行结果, 显示在浏览器页面中的结果) 28 5.3 while 语句 预备知识预备知识 while 的 c 语言
54、形式(传统 while()等结构)、while-endwhile 结构 【2-42】 php 程序 2-42送到用户浏览器解释后显示的结果(运行结果, 显示在浏览器页面中的结果) ? #while 循环 #从 1 加到 10 /使用传统 while结构 $total=0; $i=1; while($i 【2-43】while-endwhile 循环 php 程序 2-43送到用户浏览器解释后显示的结果(运行结果, 显示在浏览器页面中的结果) ? #while-endwhile 循环 #从 1 加到 10;使用传统 while-endwhile 结构 $total=0; $i=1; while(
55、$i 郑大软件学院 php 程序设计实验指导书 29 5.4 for 语句 预备知识预备知识 fo 循环的 c 语言形式(传统 for()等结构)、for-endfor 结构 【2-44】for 循环中多表达式应用 php 程序 2-44送到用户浏览器解释后显示的结果(运行结 果,显示在浏览器页面中的结果) ? #用 for 循环计算 2 的 0 次到 9 次幂的和 $total=0; $total0=0; for($i=1,$j=1;$i=10;$i+,$j*=2) echo 第.$i.步: $total=.$total.+.$j; $total+=$j; echo =$total; ech
56、o 使用 for 结构,计算结果是: $total=1+2+4+8+.+512=$total; ? 【2-45】for 循环的死循环的一个例子(因死机,效果图略) php 程序 2-45 ? for(;)/for 循环的死循环的一个例子 echo 永不停歇,耗尽你的计算机的资源!; ? 5.5 foreach 语句 预备知识预备知识 foreach()语句;foreach-endforeach 语句;循环体中对数组元素的遍历:访问每个键,访问每个键和键值 实验程序见:程序 2-11 5.6 exit 语句 预备知识预备知识 exit 语句的作用;使用形式 实验程序见:程序 2-13 5.7 r
57、eturn 语句 预备知识预备知识 return 语句的作用;使用形式 实验程序见:程序 2-12 6.包含代码 预备知识预备知识 30 require 和 include 的作用和区别;使用形式 【2-48】使用包含文件 php 程序 2-48 ? #使用包含文件 #新建一个文件 2-48-conn.php,将 2-13 的 2 到 20 行复制粘贴到 2-48-conn.php 中,保存作为包含文件, #2-48-conn.php 专门负责连接服务器,打开 test 数据库 #新建一个文件 2-48-db_close.php,将 2-13 的 38 到 42 行复制粘贴到 2-48-db_
58、close.php 中,保存作为包含 文件, #2-48-db_close.php 专门负责关闭与服务器的连接 #本程序采用引用上述两个包含文件的形式,是对程序 2-13 的简化,运行效果与 2-13 完全一样 /连接服务器,打开数据库 test include(2-48-conn.php); echo 开始从数据库 test 的表 abc 中取出数据; /将查询结果存入数组(遍历记录集,将记录集中的数据转到数组) $sql=select * from abc; /$result 为资源型变量 $result=mysql_query($sql,$server_link); $i=0; whil
59、e($temp_array =mysql_fetch_array($result) $abc_array$i0=$temp_array a; $abc_array $i1=$temp_array b; $abc_array $i2=$temp_array c; $i+; echo 取出数据完毕!; mysql_free_result($result);/释放记录集,这是显式地关闭资源,若程序终止执行,该关闭将自动进行 /关闭与服务器的连接 include(2-48-close.php); echo 开始显示数据; /将数组中的数据输出到浏览器(各列以双等号间隔) echo a 列数据=b 列数
60、据=c 列数据; for($i=0;$icount($abc_array);$i+) echo $abc_array$i0.=. $abc_array$i1.=. $abc_array$i2.; echo 显示数据结束,程序执行完毕。; ? 2-48-conn.php: ? /连接数据库 $hostname=; $username=root; $password=ilongilong; echo 开始建立与服务器的连接; /$server_link 为资源型变量 $server_link=mysql_connect($hostname,$username,$password) or die(连
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 认知障碍的评估与治疗
- 深度学习及自动驾驶应用 课件 第8、9章 基于Transformer的自动驾驶目标检测理论与实践、生成对抗网络及自动驾驶应用
- 手机行业企业发展规划
- 总经理聘用合同签订与报告
- 建筑维修行业事故处理
- 学校图书馆智能化合同
- 山西省医疗设施建设合同范本
- 地下商场桩基施工合同样本
- 地铁站供暖设备安装合同
- 贸易中心装修工程施工合同
- 中国医科大学2024年12月(含解析)《形势与政策》作业考核试题
- 中国物联网安全行业市场现状、前景分析研究报告(智研咨询发布)
- 湘潭、成都工厂VDA63-2023审核员培训考核附有答案
- 济南2024年山东济南市文化和旅游局所属事业单位招聘人选笔试历年典型考题及考点附答案解析
- 助产专业职业生涯规划
- 整理收纳师课件
- (完整word版)英语四级单词大全
- 《烟酒有危害》公开课教案
- 石膏固定PPT课件
- 【报告】管道脱脂检测报告
- 躁动患者的护理
评论
0/150
提交评论