互联网软件开发与应.ppt

上传人:wuy****n92 文档编号:80486455 上传时间:2023-03-23 格式:PPT 页数:79 大小:428.50KB
返回 下载 相关 举报
互联网软件开发与应.ppt_第1页
第1页 / 共79页
互联网软件开发与应.ppt_第2页
第2页 / 共79页
点击查看更多>>
资源描述

《互联网软件开发与应.ppt》由会员分享,可在线阅读,更多相关《互联网软件开发与应.ppt(79页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、互联网软件开发与应用互联网软件开发与应用任课教师:陆铭联系电话:66134267QQ:22839978PoPo:教学网站:任课教师:陆铭 网站:http:/mingler.ccshu.org/0第七章 PHP技术PHP简介lPHP语言的特点lPHP与其他CGI的比较PHP工作环境l安装和配置PHP环境PHP语言基础lPHP数据类型、运算符和表达式lPHP基本语句和操作数据库的命令PHP访问MySQL数据库lMySQL数据库的安装lMySQL的基本使用l使用PHP操作MySQL数据库17.1 PHP简介简介任课教师:陆铭 网站:http:/mingler.ccshu.org/2PHP语言的特点服

2、务器端嵌入式脚本描述语言,往往与MySQL数据库同时使用支持多种系统平台:win9x/NT/2000/Unix/Linux/Solaris具有自由软件的特性:可自行加入所需代码版本更新速度快容易与现有系统的网页整合:提供交互功能,修改成本低具有丰富的功能:l结构化、对象式设计、数据库处理、网络接口、安全编码机制系统移植速度快:少量改动,即可迁移3基于互联网技术的PHPPHP是一种服务器端嵌入式脚本描述语言,最大特点是数据库层操作功能强大网络发展早期都是单纯的HTML,近来需要同数据库链接的网页越来越多PHP之前用Perl、C编写CGI程序lPerl基本上成为了书写CGI程序的一个标准PHP语言

3、占有很大优势l在保持了与Perl相当能力的前提下加强了对数据库的操作能力l丰富的数据库操作函数可以进行几乎所有的数据库操作l最终要的是PHP可以在几乎所有的平台上运行Perl的最大优点是对字符串的控制能力特别强。使用Perl操作数据库需依靠Unix下Perl的DBI.pm实现。如果要在windows下使用,需使用windows下的数据操作扩展库。这使得程序的跨平台运行变得不可操作。基本的HTML文档 HTML文档 HTML文档(.htm/.html)+CGI程序 ASP/PHP程序 (Perl/C)对字符串控制力特强 在windows 在各种平台 平台下运行 运行 依靠Unix下的DBI.pm

4、 依靠windows (Unix,Windows)访问数据库 下的API访问 Linux等,可访问 数据库 多种类型数据库内嵌的脚本代码是独立的程序4PHP与其他CGI的比较编写CGI程序的方式有很多,PHP只是其中的一种lASP/PHP:嵌入式脚本的方式lPerl/C/C+:独立的程序,需专门安置在/bin/cgi目录中 平台性 稳定性 开发及维护时间 与网页的结合能力 安全性 功能及升级PHP 多平台 较强 较易 内嵌,结合较好 较好 升级最快NSAPI 只能 开发时间较长 不能内嵌 较弱 随服务器 Netscape 稳定后效率最佳ISAPI 只能IIS 较弱 同上 不能内嵌 最差 随服务

5、器ASP 只能IIS 较弱 较易 内嵌,结合较好 最差 随服务器CGI 无限制 强 视开发工具语言 不能内嵌 最好 无限制57.2 PHP工作环境工作环境任课教师:陆铭 网站:http:/mingler.ccshu.org/6PHP工作环境PHP开始只支持Unix和UnixLike体系的操作系统lSCOUnix、Linux随着PHP使用的日益增多,感到在缺少集成环境的Linux下开发是件困难事,发展了Winodws下的PHP版l除非实在没有条件构建Unix平台才在windows下进行调试l一般情况下,可以在一台计算机上搭建Linux平台作为服务器,在另一台安装有windows的计算机上通过Te

6、lnet进行管理PHP程序的常规开发方法l在windows环境下编写源代码l通过Telnet在Linux上进行调试和试运行l如此配合使用,可以使工作效率达到最大7在Linux和Windows下开发PHPPHP由Linux的发展而流行,Linux对PHP的支持最完美Linux下的PHP开发环境l程序源码编辑环境Vi,Emacs(windows的记事本)lPHP自身工作环境Apache,MySQL等l支持PHP的浏览器环境LYNX(Netscape/IE)在windows下开发PHP程序的最大好处就是可以享用集成环境Windows下的PHP开发环境l程序源码编辑环境记事本/专用文本编辑器lWeb服

7、务器IIS/Apache,MySQL,SQL ServerlPHP浏览器IE/Netscape8Windows下安装和配置PHP环境(1)从PHP官方网站上下载php安装压缩包l官方网站:http:/l在Download目录下可以找到php公布的最新的php安装压缩包在Linux下习惯于发行软件的源程序,而在windows下则只提供编译后的文件l最新版本是php包含:Apache、CGI、API、MySQL、ISAPI、NSAPI等下载后将其解压缩(WinZip/WinRAR)到C:PHPl也可以解压缩到其他地方,如果这样做,则在安装完成后须编辑解压出来的文件中的.inf 文件l凡是带有 ph

8、p 前缀的文件可以直接放到php目录下,其他文件只能放在windows/system32下,才能被windows调用解压缩后,执行安装程序进行安装lphp目录下有个php.ini-dish文件,需要将其改名为php.ini,并将其移动到windows目录下,并将其中 extension=php_MySQL.dll 前的注释标记去掉9Windows下安装和配置PHP环境(2)使用IIS服务器安装PHPl修改完php,ini文件后,鼠标右击php_iis_reg.inf文件,在弹出的菜单中选择“安装”将PHP安装到系统中l安装完毕后必须重新启动计算机,安装过程中修改的参数才能有效l重新启动后即可使

9、用l安装和使用过程中有不清楚的地方,可以随时打开求助文件了解操作要点在Windows下构建Apache平台运行PHPl除了可以在IIS中安装PHP外,还可以在windows环境下构建Apache平台l首先到Apache网站上下载Apache在Windows下的应用程序l下载后解压缩安装,安装完成后需要对Apache做一些特别的设置在http.conf 或 srm.conf中增加一行信息:Apache application/x httpd-php php/php.exeApache applicaion/x httpd php.php10Linux下安装和配置PHP环境在Linux下,程序以源

10、码形式发布,需从源码开始编译并安装,相比Windows下稍微复杂些l首先从php官方网站上下载php源码,如:这是一个压缩文件,.gz表示是经过gzip压缩的文件,.tar表示这是一个包文件。Linux文件压缩时有个习惯:先将文件打包,然后再压缩l将压缩文件用gunzip和tar进行解压缩和解包gunziptar xvfl解压后的Linux源码中往往有一个脚本程序,可以直接使用该脚本程序configure进行编译,但这样编译出来的文件安全性差l一般使用配置项进行指定以获得最适合的程序运行./configure help|more可以查看相关的选项l编译时可选择编译成外部 CGI程序 还是 Ap

11、ache内嵌模块建议最好将对MySQL的支持部分编译进去11几个常用的Unix命令gunzip 对后缀为.gz的压缩文件进行解压缩操作tar 对后缀为.tar的打包文件进行解包操作cd 设置当前文件目录路径make 对源码文件进行编译操作make install 经编译后的结果安装到当前目录下make test 测试安装结果命令make bench 评估安装结果和性能cp 文件复制操作命令./表示当前目录./表示当前目录的父目录12配置php环境PHP环境的配置主要是通过php.ini文件进行的PHP环境配置的信息对整个PHP环境都有效,如果要改变相关的环境因素,只要修改环境配置文件php.i

12、ni即可环境配置文件的读取l以内置服务器模块方式运行的PHP,在启动服务器时读取l以CGI方式运行的PHP,每次调用时都发生调用对于Apache+PHP的配置信息lApache的配置文件为:httpd.conf 或 srm.conflPHP的配置文件为:php.ini依据环境参数位置的不同,修改httpd.con(srm.conf)或 php.ini137.3 PHP语言基础语言基础任课教师:陆铭 网站:http:/mingler.ccshu.org/147.3.1 PHP语言中的简单约定PHP代码在html中嵌入形式 这两种是php语言的标准形式使用php代码在客户端的浏览器进行页面输出时,

13、页面的源代码中只有一些标准的HTML代码lphp引擎在服务器端过滤了文件的内容,对其中的代码进行了处理,转换成了标准的HTML代码,并发送到客户端的浏览器 使用这两种形式时需避免与XML或ASP语言发生冲突15PHP语句的脱离形式与程序注释PHP语句的结束(脱离)形式l与C语言相同,PHP程序语句是以“;”为结束标志的l在嵌入符号“?”之前的一句php语句可以不写“;”就结束程序注释l可以使用C、C+、Unix Shell语言的注释方式/或#-单行式,如:/One line.、#One line./*/-多行式,多行式的注释不能相互包含示例示例l/*/l/*/*/*/l/*/*/167.3.2

14、 变量的声明和文件的引用变量声明lPHP是一种弱类型声明语言,与VBScript、Javascript相似,变量声明时不需要特别说明变量的类型,而且往往在变量声明的同时进行变量初值的赋值lPHP变量声明格式:$变量名=表达式或值;$title=“Hello,world!”;头文件的引用l所谓头文件是指这样的一类文件,其中包含了大量的常量、通用函数和通用过程,它的内容可以为各个程序文件所引用l引用头文件可以加快程序开发的速度,减少程序开发难度l在php程序中可以像C语言一样,对头文件进行引用l引用格式Require(“文件名”);静态引用.Include(“文件名”);动态引用.不论是否真的需要

15、使用,引用的文件都将作为主程序的一部分来运行。出错时,给出错误信息并终止程序的运行。仅在确定需要使用其中的常量或函数时,文件才会被加入到主程序中。出错时,仅给出错误信息,程序照常运行。17复合语句,=为赋值语句,while为当型循环数据库操作函数数据库选择函数7.3.3 数据库操作命令先看一个简单例子?php$db=MYSQL_Connect(localhost,user,passwd);MySQL_Select_db(mydb,$db);$result=MySQL_query(select*from employees,$db);echo n;echo 姓名职位n;while($myrow=

16、MySQL_fetch_row($result)printf(%s%s%s,$myrow1,$myrow2,$myrow3);echo n?变量,数据库链接号主机名用户名口令归纳:数据库操作的基本步骤 链接数据库服务器:MySQL_Connect(localhost,user,passwd);选择一个数据库:MySQL_Select_db(mydb,$db);对数据库进行具体的操作:MySQL_query(select*from employees,$db);处理记录:MySQL_fetch_row($result)假设:已经在MySQL中创建了一个名为mydb的的数据库,其中含有一个数据表e

17、mployee,具有“姓名”、“职位”等字段注意:php中对变量、标识符等区分大小写数据库链接函数187.3.4 一个完整而简单的PHP程序Sample.php php程序示例程序示例?php$hello=这是我编写的第一个这是我编写的第一个PHP程序程序;print$hello;print$hello ;?说明:php是服务器端的嵌入式脚本描述语言,php程序必须放置在服务器端,在服务器上供客户端的浏览器执行,即类似ASP程序,不可在客户端直接浏览。197.3.5 PHP的数据类型、运算的数据类型、运算符和表达式符和表达式任课教师:陆铭 网站:http:/mingler.ccshu.org/

18、20PHP的数据类型PHP支持多种数据类型lInteger 整型、Double 浮点型、String 字符串lArray 数组、Object 对象、pdfinfo和pdfdoc PDF信息PHP不是强类型说明语言,在程序中可以不必事先进行数据类型的声明,PHP解释器会自动对数据类型进行判断在第一次赋值时,PHP根据上下文决定变量的数据类型21PHP中的常量PHP中对常量的类型要求是不严格的常量分为预定义常量和自定义常量两种l预定义常量:PHP内部事先已经定义了的常量预定义常量有多种不同的开头,决定了各种不同的类别 P.149l自定义常量:由用户自行依据程序的需要来定义的常量自定义常量的定义格式

19、:define(“常量名”,表达式或值)例:define(“CONSTANT”,“Hello,World.”)示例22再谈PHP中的变量变量的概念l变量是通过一个标识、类型来应用内存,通过标识、类型和可选的数值来定义变量l每一个变量都有一个作用的范围,定义了变量的可见性和生命周期变量的定义l$变量名=初始值变量的类型l详见P.149,通常情况下不需要声明类型,但可使用cast或settype进行强制类型转换变量的初始化l一般只要直接赋值即可,如:$int1=1998,$ln=a new line.n,$st=phpl数组初始化:$数组名=array(,),如:$name=(张三,李四)l数组变

20、量的引用:$数组名i,i=0,1,2,,如:$name0,$name1 i 称为数组的下标,下标的取值从0开始 变量定义?php$name=大山;$account=486595237;$Balance=16893.85;echo$name,你好!;echo 你的账号是:$account。;echo 你现在账上的余额是:$balance。;?23变量的作用域一般情况下,PHP变量仅仅只有有限的活动范围在用户自定义的函数中有“本地函数范围”的概念l所谓“本地函数范围”是指所有函数中的变量不经特别声明,都仅仅在函数内有效,函数外定义的变量在函数内无效一般情况下,变量均为局部的(本地),除非用以下两种

21、方法之一指定其全局属性l使用global关键字作再定义l使用$GLOBALS数组,该数组可以不用声明,可以直接使用 变量作用域$a没有在函数内说明,没有任何结果输出 变量作用域 输出结果为:3.008,9558884.000 变量作用域变量作用域 输出结果同样为:输出结果同样为:3.008,9558884.00024静态变量静态变量仅仅在本地函数的活动范围中存在通常情况下,变量的生命周期仅在一次调用中l在用户自定义函数中的变量,调用结束,变量就释放了即函数调用结束,变量消亡;下次调用,重新设置变量静态变量能够使变量在函数调用结束后仍保持不变l要想使变量能够保持一段时间,须使用静态变量 因为变量

22、$a的初始值为0,所以函数调用后输出结果为0,然后变量$a增1,$a+,此时变量$a的值为1,但函数运行结束,变量全部释放,变量$a不再存在变量$a的初始值仍为0,第一次函数调用后的输出结果为0,然后变量$a增1,$a+,此时变量$a的值为1,因为变量$a是静态变量,函数运行结束后,变量不会释放,变量$a仍然存在;第二次调用该函数时,不再做新的初始化操作,直接取出该变量的值使用。结果是每次输出的值比上次的大1。25递归函数和递归调用递归是程序设计中常用的一种程序设计方法l递归的含义就是用自己的定义来说明自己递归函数就是具有函数自身调用功能的函数这种调用就称为递归调用递归函数中使用静态变量能够使

23、值发生传递,是一种很重要的应用方法为了避免死循环,在设计递归函数的时候,必须有一个明确的且必定会发生的条件来终止函数的递归调用?php function test()static$count=0;$count+;echo$count;if($count函数第一次调用:$count=0,$count+1,输出 1,$count 10函数被第二次调用:$count=1,$count+1,输出 2,$count 10函数被第三次调用:$count=2,$count+1,输出 3,$count 10函数被第四次调用:$count=3,$count+1,输出 4,$count 10函数被第十次调用:$c

24、ount=9,$count+1,输出 10,$count=10$count-,返回。然后依次$count-,返回26活动变量活动变量类似于语言中的指针所谓活动变量,是指动态地设置和使用一个变量的名称示例l一个普通变量的声明:$a=“hello”$a为普通变量,值为hellol一个活动变量的声明:$a=“world”活动变量将$a的值作为变量名,并赋值worldlecho“$a$a”;echo“$a$hello”;活动变量的好处是可以动态地引用/设置一个变量的名字数组中使用活动变量l$ai可表示为$ai 作为变量名,下标变量$a的第i个变量,$ai可表示为$a 作为变量名,a变量值为变量名组成的

25、数组的第i个分量$ai27外部PHP变量(1)由客户端提供的信息,在PHP中被视作外部的变量得到响应HTML表单l当表单被提交后,PHP脚本将自动设置从表单获得的变量为可用变量l在php_track_var特性打开的情况下,可使用全局联合数组:$HTTP_POST_VARS、$HTTP_GET_VARS图象提交变量名字l当提交表单的按钮视一个图象按钮时,表单程序会使用两个附加的变量_x和_y来记录用户点击在该图片上的位置信息。l (sub_x,sub_y)HTTP cookiesl可使用setcookie()函数对cookie进行设置l任何从服务器发送到客户端的cookies将自动转化为一个P

26、HP变量l如果希望对单个的cookie指派多个值,只要使用cookies数组即在cookie的名字后加 Setcookie(MyCookie,Testing,time()+3500)姓名:表单提交后,PHP将自动建立一个$name变量,包含了由文本框输入的全部文本 姓名:姓名:Emai:喜欢的啤酒:喜欢的啤酒:Warthog Guinnes 本表单被提交后,在PHP中将自动生成$personalname、$personalemail、$beer 变量 28外部PHP变量(2)环境变量lPHP自动使用环境变量作为普通变量:echo$HOMElPHP可使用内置函数读取外界的环境变量信息:geten

27、v();lPHP可使用内置函数设置外界的环境变量值:putenv();29数据类型的自动转换PHP不需要在声明变量时确定它的变量类型,一个变量的类型是由这个变量被使用的前后关系来决定的PHP自动转换类型的典型例子是运算符“+”l$var=“0”$var为字符串变量“0”l$var+$var仍为字符串变量“1”l$var+=1$var转换为一个整数 2l$var=$var+1.3$var成了一个双精度数 3.3l$var=10+“5 littles”$var保存的将是数值 15当字符串转换成整数时,若字符串的开始为数字串,则取该数值为字串的值,否则取0值30类型转换规则确定一个变量的类型l因为P

28、HP自己决定变量的类型,并且常常按需要转换变量的类型,所以一个变量的类型往往不是在任何时刻都很明确的lPHP有一些函数可以找出一个变量的确切类型gettype()、is_long()、is_array()、is_string()、is_object()类型转换lPHP中变量除了可自行转换外,还可以被要求强制转换。强制转换时,将需要的类型名写在变量前的括号内即可$var=10;$bar=(double)$var;字符串转换l当一个字符串被当作数值来计算时,它的结果和类型如此确定字符串中含有“”、“e”或“E”,则被当作双精度类处理,否则作整数处理字符串以任何有效的数字开头,则这个数字就是字串参加

29、运算的值,否则为0初始化对象l初始化一个对象用new语句class foo function do_foo()echo Now doing foo.;$bar=new foo;$bar-do.foo();上述程序中,上述程序中,class 部分为对象的说明部分,部分为对象的说明部分,$bar=new foo;为对象初试化操作为对象初试化操作$bar-do.foo();为对象中的函数调用为对象中的函数调用31PHP的数组处理数组初始化l使用连续的指定值进行数组的初始化,连续指定时不需指明标号l例:$name=张为;$name=李文;$name=赵悦;下标为 02l数组的最小下标是0,不是1数组的

30、操作lPHP同时支持标量数组(Scalar Array)和关联数组(Associative Array),实际使用中不会感到两者之间的任何区别l通过使用函数创建数组:list()或 array()l通过赋值创建数组:$a0=abc;$a1=Smithl通过函数处理数组:asort(),arsort(),ksort(),rsort(),sort(),unsort(),usort()等函数可用于排序,count()用于统计数组中的元素个数,next(),prev(),each()等函数可用于遍历数组32基本运算符算术运算符l+、-、*、/、()、mod()等字符运算符l 连接符$a=“Hello”

31、;$b=“World”;$c=$a$b赋值运算符l=、+=、=、-=、*=、/=等,除=外其他运算符称为复合运算符位运算符l按位进行运算的符号:&、|、参见p.157逻辑运算符land、or、xor、&、|、!33其他运算符比较运算符l=、!=、=特殊运算符l$l&(加在变量前,表示变量的指针)l(加在函数前不显示错误信息)l-(引导对象的方法或属性)l=(引导数组的元素值)l?:(三元运算符)(expr1)?(expr2):(expr3)类似 if then else 347.3.6 PHP的基本语句的基本语句任课教师:陆铭 网站:http:/mingler.ccshu.org/35表达式表

32、达式的定义:任何内容都有它的值,即表示一个对象的值的语句称为表达式l$a=5:变量赋值表达式,$a=5本身的计算结果为 5l$b=$a:值传递表达式,$b=$a本身的计算结果为$a的值lFunction foo()return 5 foo()的返回值是5,foo()也是一个 表达式PHP式一种面向表达式的语言,每一个操作都是一个表达式l表达式$a=5的值为5l$b=($a=5)等价于$a=5;$b=$al也可以表示为$b=$a=536关于前递增与后递增前递增l在读出变量的值之前递增变量的值,表示为+$var后递增l在读出变量的值之后递增变量的值,表示为$var+组合操作符表达式l$a+=3;$

33、b*=6;$x-=5;前/后递增表达式的应用l$b=$a=5;$c=$a+;$e=$d=+$b;$g-=$bl$f=$g+=$e+;$h=$g+=12;表达式与语句l表达式可以是语句,但不是所有表达式都是语句$a=5 是一个表达式,但不能由其自己构成一个语句,而$b=5:却是一个有效的语句37条件控制语句if(expr)statements;if(expr)statements1 else statements2 if(expr1)statements1 elseif(expr2)statement2 else statements3 if(expr):statements;else:stat

34、ements;endif 单一执行语句形式的if控制语句if($a$b)print a is bigger then b.多执行语句形式的if控制语句if($a$b)$t=$a;$a=$b;$b=$t;print a if bigger then b.嵌套的if语句if($a$b)print$a;print$b;print“a is bigger then b.”elseif($a=$b)print“a is equal b.”else print“a is smaller then b.”PHP的if控制语句与HTML语句交互的语法PHP使用了一种特殊的方法将HTML语言嵌套在if语句中。方

35、法是在if表达式之后跟随一个冒号:,然后嵌入HTML语句,最后用endif结尾 A=15 now.对PHP条件控制语句和循环控制语句中的逻辑表达式而言,具体的值无关紧要,只要确定其值为True或False,所以,PHP对于这些表达式的结果只要非零的数值都是True,零是False,0/0/空串为False,其他(包括负数)为True;对数组和对象,无任何元素的为False,否则为True。38循环控制语句while(expr)statements;while(expr):statements;endwhile;do statements;while(expr)breakcontinue 当型循

36、环,循环前检测,循环次数0。示例:?php$i=1;while($i当型循环的交互形式,循环次数0。示例:?php$i=1;while($i当型循环,循环后检测,循环次数1。示例:?php$i=0;do print+$i;while($i终止当前循环的执行,并跳出当前循环。当然,break不仅仅适用循环,也可应用在条件分枝上。示例:?php$i=1;while($i执行本语句将结束本次循环,跳到循环体的开始处,接着进行下一次的循环判定,也称为“短路循环”。39FOR循环语句For(expr1;expr2;expr3)statements;这是php中最复杂的循环形式lexpr1:在循环开始前无

37、条件的被求解执行lexpr2:每次循环开始时被执行,结果为真则循环继续;结果为假则循环结束lexpr3:每次循环结束时被执行l一般情况下,expr1用来确定循环控制变量的初值,expr2用来确定循环控制变量的终值,expr3用来调整循环控制变量的值l任何一个表达式都可以是空的。expr2为空则循环次数不确定For循环也支持交互的“冒号语法”lFor(expr1;expr2;expr3):statements;endfor;使用for循环时,同一个问题可以有多种表示形式,例:要求打印输出数字110。第一种方法:?php for($k=1;$k第二种方法:10)break;print$k;?第三种

38、方法:10)break;print$k;$k+;?第四种方法:?php for($k=1;$k40Switch语句Switch是多路分支语句,虽然可以通过多重嵌套的if语句来实现多路分支,但嵌套越深,程序的可读性越差Switch语句的语法switch(var)case val1:statements1;case val2:statwments2;case valN:statementsN;default:statements;几点说明:1)case语句的个数并没有规定,可以无限制增加;2)最后的default是表示在前面所有可能的取值都不满足时的处理方式,但不是必须的,可以没有3)switch

39、语句是依序逐条执行的,直到switch体的结束,或者遇到了break语句,switch语句才停止执行。所以,如果在一个分支语句的后面没有写上break语句,则程序将继续执行下一个分支语句的内容。41Require和Include语句require(文件名)头文件包含语句,静态包含,始终以指定的文件来替代include(文件名)头文件包含语句,动态包含,执行到该语句时才会用指定的文件来替代根据以上特定,include语句可以出现在循环控制结构中,以便按需包含不同的头文件;require语句不能出现在循环控制语句中,不能实现按需包含的要求特殊要求linclude语句出现在if语句中时,必须封闭在一

40、个语法块中$files=array(first.inc,second.inc,third.inc);For($k=0;$kcount($files);$k+)include($files$k);If($cond)if($cond)include($file);include($file);Else else include($other);include($other);错误的用法 正确的用法42PHP的自定义函数函数定义的一般形式function fun_name($arg1,$arg2,$argN)statements;return$ret_val;l函数中可以使用任何有效的PHP代码,甚

41、至是其他的函数或类的定义l返回值函数通过return语句返回结果,返回值可以是任何类型的,包括列表、对象。函数不能直接返回多个值,但可以通过返回列表的方式实现。l参数外部信息通过参数表传递给函数。Php支持值传递方式(默认方式),也支持地址传递方式。可以定义形式参数为变量参数,也可以直接传变量地址形式参数表函数体。是实现某种功能的语句的有序集合。函数的返回值常量、变量,均为值传递。即传递后不改变传递的信息本身。通过使用变量参数的方式进行地址传递,方法是在引用的变量前加上符号&。即传递后可以直接改变传递的信息本身。程序执行后的结果是:This is a string,and something

42、extra.程序执行后的结果是:This is a string,This is a string,and something extra.43PHP自定义函数(续)默认值l函数定义时,可以定义拥有默认值的参数,即给形式参数赋值l函数定义时,如需定义拥有默认值的参数,须先定义无默认值的参数,后定义有默认值的参数执行的结果是提示出错执行的结果是:Making a bowl of acidophilus raspberry.44PHP的对象类类是一系列变量和函数的集合,是对象的模型类的定义Class 类名称 变量表;函数声明列表;$this的含义l表示当前对象l$this-表示存取当前对象的指定变

43、量或函数示例1Class Cart var$items;function add_item($artnr,$num)$this-items$atrnr+=$num;function remove_item($artnr,$num)if($this-item$artnr$num)$this-item$artnr-=$num;return true;else return false;示例2Class Data Var$item;$cname;$cage;function add_item($name,$age,$num)$this-item$num=$num;$this-cname$num=$n

44、ame;$this-cage$num=$age;function remove_item($num)$n=count($this-item);for($k=$num;$kcname$k=$this-cname$k+;$this-cage$k=$this-cage$k+;45类变量的创建和类的扩充自定义类的变量创建l$my_cart=new Cart;l$my_data=new Data;添加数据记录或删除数据记录l$my_cart-add_item(20,1)l$my_cart-remove(20,2)l$my_data-add_item(David,42,1);l$my_data-remov

45、e(3);类构造器l类中的构造器是创建类的新变量时自动调用的函数l类中与类名相同的函数就是类构造器l类构造器可以是带有默认值的 P.173Class Auto_cart extends Cart function Auto_cart()$this-add_item (“10”,1)类的扩充l扩充的类拥有基类的所有变量和函数,并且拥有在扩充类中新定义的变量和函数l扩充类定义时使用extends关键字Class New_Cart extends Cart var$owner;function set_owner($name)$this-owner=$name l这里定义了一个新类new_cart,

46、是类cart的扩充类,它除了拥有新定义的变量$owner和函数set_owner以外,还继承了父类的所有变量$items和函数add_item,remove_item。($tem:10,$num=1)($item,$num)带参数的类的变量的创建:$new_cart1=new Auto_cart();$new_cart2=new Auto_cart(20,16);467.4 PHP访问访问MySQL数据库数据库任课教师:陆铭 网站:http:/mingler.ccshu.org/47MySQL数据库的历史SQL-Structured Query LanguageMySQL之前,在互联网上广泛使

47、用的是mSQL(miniSQL)lmSQL小型、简单,但不完全支持SQL,且不太安全lMySQL由瑞典公司开发的功能强大、快速而价钱低廉的数据库软件,具有伸缩性、完全支持SQL、支持ODBC、比较安全MySQL的特点l对于多数Unix平台与应用程序,MySQL可以免费获得lMySQL是多线程、多用户的数据库系统lMySQL支持多平台l支持SQL92标准,可以使用所有的select和where语法l提供多种API(包括C+、Eiffel、Java、Perl、PHP、Python、TCL等)l具有丰富的数据类型(1,2,3,4,8字节的Integer、Float、Double、Char、Varch

48、ar、Text、Data、Time、Datetime、Timestamp、Year、SET、Enum)l可从多个数据库中混合不同的表格(直接构成逻辑视图)l完全支持ODBC,可在win9x/NT上使用Access数据库缺省用户的权限是全部可读写的,不太可靠MySQL与PHP的结合让编写基于数据库的应用程序非常容易。编译时Apache已经将PHP包含其中,系统连接MySQL监控程序的负载及其轻微。MySQL是一种小型的SQL数据库,整体性能比mSQL有提高。MySQL的最大优势在于数据库检索的速度。48MySQL与其他数据库的比较Oraclel大型数据库,稳定、安全l在数据库检索上采用了复杂算法

49、,不适合小型简单应用场合Accessl小型数据库系统,适合于使用微软平台、访问量较小的场合SQL Serverl适合于使用微软平台、质量要求一般的场合l主要特点是容易使用,不适合高性能要求的场合MySQLl小型、稳定、安全、数据库性能较高49MySQL数据库的安装MySQL安装包的获取l从网站上下载MySQL安装包l可下载windows平台的MySQL安装包,也可以下载Unix下的Windows环境下安装MySQLl将获得的安装包解压缩,然后运行安装程序l除了MySQL安装包外,还要从网站上下载MyODBC的驱动程序,以便可通过其他应用程序与MySQL相连l在win9x下安装MySQL安装TC

50、P/IP协议:MySQL是使用TCP/IP协议连接客户端和服务器的安装MySQL(若安装目录不是缺省目录,可先安装在缺省目录中,然后再移动到指定目录的办法,移动后须使用“MySQL basedir 新目录名”启动)选择MySQLd或MySQLd opt运行方式启动MySQL服务:在命令窗口内运行“MySQLd”终止MySQL运行:在命令窗口内执行“MySQLadmin u root shutdown”使用调试和自动内存管理的方式编译使用对Pentium优化的版本在中国地区有两个镜像站点可供快速下载:、50MySQL数据库的安装(续1)l在WinNT平台下安装MySQL安装过程与win9x下基本

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com