PHP的程序设计基础.ppt

上传人:牧羊曲112 文档编号:6514699 上传时间:2023-11-08 格式:PPT 页数:91 大小:264.50KB
返回 下载 相关 举报
PHP的程序设计基础.ppt_第1页
第1页 / 共91页
PHP的程序设计基础.ppt_第2页
第2页 / 共91页
PHP的程序设计基础.ppt_第3页
第3页 / 共91页
PHP的程序设计基础.ppt_第4页
第4页 / 共91页
PHP的程序设计基础.ppt_第5页
第5页 / 共91页
点击查看更多>>
资源描述

《PHP的程序设计基础.ppt》由会员分享,可在线阅读,更多相关《PHP的程序设计基础.ppt(91页珍藏版)》请在三一办公上搜索。

1、PHP Web程序设计教程与实验,PHP 简介,什么是 PHP?PHP:超文本预处理器(Hypertext Preprocessor)PHP 是一种服务器端的脚本语言,类似 ASP PHP 脚本在服务器上执行 PHP 支持很多数据库(MySQL、Informix、Oracle、Sybase、Solid等等)PHP 是一个开源的软件(open source software,OSS),PHP 简介(1/3),什么是 PHP 文件?PHP文件可包含文本、HTML标签以及脚本PHP文件向浏览器返回纯粹的HTML PHP文件的文件后缀是.php、.php3”,PHP 简介(2/3),PHP 简介(3/

2、3),为什么要使用 PHP?PHP可在不同的平台上运行(Windows、Linux、Unix)PHP与目前几乎所有的正在被使用的服务器相兼容(Apache、IIS等)PHP易于学习,并可高效地运行在服务器端(程序 不需要编译,直接解释执行)可从官方网免费下载资源:,PHP Web程序设计教程与实验,第5章 PHP 5的程序设计基础,第5章 PHP 5的程序设计基础,示例程序,5.1 PHP 5程序的语法结构(1/2),1HTML文档嵌入PHP代码的方法 可以把 PHP 的脚本块嵌入在HTML文档中的任何位置,常用方法有三种:(1)简写形式(要求服务器支持简写)(2)标准形式(推荐使用,以达到最

3、好的兼容性)(3)类似JavaScript形式 echo(PHP5程序代码);,5.1 PHP 5程序的语法结构(2/2),2语句分隔符 PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来;另外,php结束标记(?)也意味着最后一个语句结束。3PHP中的注释 在 PHP 中,我们使用/来编写单行注释,或者使用/*和*/来编写大的注释块。,5.2 PHP 5的数据类型(1/4),PHP 5支持八种原始类型 四种标量类型:布尔型、整型、浮点型、字符串 二种复合类型:数组、对象 二种特殊类型:资源(resource)、NULL,5.2 PHP 5的数据类型(2/4),1.

4、布尔型 取值为关键字FALSE或TRUE之一(两个都是对大小写不敏感);数值0表示FALSE,非0的任何一个数都表示TRUE。2.数值:数值可以是整型或浮点型。$a=1234;/十进制$a=0123;/八进制$a=0 x12;/十六进制,5.2 PHP 5的数据类型(3/4),3.字符串 字符串可以是由单引号或双引号括起来的一串字符,两者区别如下:单引号 除单引号和反斜线可用反斜线()转义之外,任何其它字符无法转义(即反斜线本身也会被显示出来);同时,字符串中出现的变量不会被变量的值替代。双引号 除单引号和反斜线可用反斜线()转义之外,还可以转义更多特殊字符(表5.1);同时,字符串中出现的变

5、量会被变量的值替代。,5.2 PHP 5的数据类型(4/4),单引号与双引号字符串示例;echo$first$second;/output:Hello World?,5.3 PHP 5的常量和变量(1/9),5.3.1 常量 常量是一个简单值的标识符(名字),在脚本执行期间该值不能改变。使用define()函数来定义常量,格式如下:bool define(string name,mixed value,bool case_insensitive)注:默认情况下,常量名对大小写敏感,即define函 数的第三个参数取值为false。,多种不同的类型,是否区分大小写,5.3 PHP 5的常量和变量

6、(2/9),常量定义示例;echo Constant;/outputs Constant and issues a notice.echo;define(GREETING,Hello you.,true);echo GREETING;/outputs Hello you.echo;echo Greeting;/outputs Hello you.?,5.3 PHP 5的常量和变量(3/9),常量的语法 常量默认为大小写敏感(按照惯例常量标识符总是大写的)。常量只能包含标量数据(boolean,integer,float 和 string),不要定义 resource 常量。常量前面没有美元符号

7、($);常量只能用 define()函数定义,而不能通过赋值语句;常量是全局的,不受作用域范围的限制,可以在脚本的任何地方定义和访问常量。一些内置常量。(P.93),5.3 PHP 5的常量和变量(4/9),5.3.2 变量 PHP中变量用于存储值,比如数字、文本字符串或数组,一旦设置了某个变量,就可以在脚本中重复地使用它。PHP中的所有变量都是以$符号开始的,后面跟上一个变量名称,如:$var_name=value;变量都被限制到本地范围,而且如果是在函数中创建的,它们的生存期与函数的生存期是一样的。,5.3 PHP 5的常量和变量(5/9),变量声明PHP是一门松散类型的语言,在PHP中不

8、需要在设置变量之前声明该变量。在PHP中,变量会在使用时被自动声明,根据变量被设置的方式,PHP会自动地把变量转换为正确的数据类型。,5.3 PHP 5的常量和变量(6/9),变量的命名规则变量名必须以字母或下划线 _ 开头。变量名只能包含字母、数字字符以及下划线。变量名不能包含空格。如果变量名由多个单词组成,那么应该使用下划线进行分隔(比如$my_string),或者以大写字母开头(比如$myString)。变量名区分大小写。,5.3 PHP 5的常量和变量(7/9),预定义变量$GLOBALS:包含指向当前程序中全局范围内有效的变量,它是一个数组,该数组的索引(或键名)就是全局变量的名称。

9、$_SERVER:该全局变量是一个包含诸如头信息、路径和脚本位置的数组。常见的$_SERVER的元素包括PHP_SELF(当前正在执行的脚本的文件名)、SERVER_ADD(当前执行脚本所在服务器的IP地址)、SERVER_NAME(当前执行脚本所在服务器主机的名称)、DOCUMENT_ROOT(当前脚本所在文档的根目录)、SCRIPT_FILENAME(当前执行脚本的绝对路径)、SCRIPT_NAME(当前脚本的路径)、HTTP_REFERER(链接到当前页面的前一页面的URL)等。,5.3 PHP 5的常量和变量(8/9),预定义变量$_GET:通过HTTP的GET方法提交至脚本的表单变量

10、。$_POST:通过HTTP的POST方法提交至脚本的表单变量。$_COOKIE:通过HTTP的Cookies方法提交至脚本的变量。例如:,5.3 PHP 5的常量和变量(9/9),5.4 PHP 5的运算符和表达式(1/9),1.算术运算符 算术运算符就是用来处理四则运算的符号,如下表:,5.4 PHP 5的运算符和表达式(2/9),2.字符串运算符 字符串运算符号只有一个并置运算符,就是英文的句号“.”。用于把两个字符串值连接起来,变成一个合并后的新字符串。,5.4 PHP 5的运算符和表达式(3/9),例5.2n;echo$a-$b.n;echo$a*$b.n;echo$a/$b.n;e

11、cho$a%$c.n;$a+;echo$a.n;$c-;echo$c;?,例5.3,5.4 PHP 5的运算符和表达式(4/9),3.比较运算符 比较运算符用来比较两个相同类型的数据的大小、是否相等的关系,比较的结果是一个布尔型,值为TRUE或FALSE。如下表:,5.4 PHP 5的运算符和表达式(5/9),例5.4,5.4 PHP 5的运算符和表达式(6/9),4.逻辑运算符 逻辑运算符用来连接一个或两个布尔型的数据或表达式,逻辑运算的结果是一个布尔型,值为TRUE或FALSE。如下表:,5.4 PHP 5的运算符和表达式(7/9),5.赋值运算符 赋值运算符用来将一个表达式的值赋给一个变

12、量。如下表:,5.4 PHP 5的运算符和表达式(8/9),6.其它运算符 除了上述的基本运算符号外,还有一些运算符号难以归类,其符号与意义如下表:,5.4 PHP 5的运算符和表达式(9/9),7.表达式 表达式是PHP最重要的基石,当操作数和操作符组合到一起时,它们即组成一个表达式。表达式是由一个操作符或多个操作符将操作数连接起来的式子,最基本的表达式形式是常量和变量。表达式加上一个分号结尾即为语句。8.运算符优先顺序(P.94.),5.5 PHP 5程序的数据输入和输出,5.5.1 数据输出 利用PHP程序向用户浏览器输出数据的基本函数有回显函数echo和打印函数print,两者的功能几

13、乎是完全一样,但存在一定的区别:echo和print实际上不是函数,因此无需对其使用 括号。但在echo中可以同时输出多个字符串,而 在print中则只可以同时输出一个字符串。echo运行速度比print快。,5.5 PHP 5程序的数据输入和输出,echo、print输出数据示例;/echo:多个参数print This,string,was,made,with,single,parameters,;/产生语法错误print This string was made with single parameters;/print:一个参数?,5.5.2 数据输入(1/8),在PHP中实现数据输入

14、的方法:,数据输入,URL,HTML表单,Cookie,Session会话,5.5.2 数据输入(2/8),方式一:通过在url地址后面附带输入数据,并通过访问全局数组$_GET的方式来实现(数组元素的下标名必须与输入参数名一致,大小写也需一致)例如:(1)在浏览器地址栏输入以下带有参数的URLhttp:/localhost/echoexample.php?name=Chen&love=tennis(2)在echoexample.php程序中,通过访问全局数组$_GET来获取输入数据,5.5.2 数据输入(3/8),echoexample程序:,5.5.2 数据输入(4/8),方式二:利用表单

15、来输入数据,并通过访问全局数组$_POST的方式来实现(存储了用户浏览器中表单上的各个表单元素的值,数组元素的下标名必须与表单元素名一致,大小写也需一致),5.5.2 数据输入(5/8),示例:利用表单来输入数据(1)定义HTML表单页面ex5_6.html:姓名 喜爱的运动,5.5.2 数据输入(6/8),(2)定义接收HTML表单数据的PHP程序ex5_7.php:,5.5.2 数据输入(7/8),通过$_REQUEST全局数组来获取输入数据 PHP的$_REQUEST全局数组包含了$_GET、$_POST以及$_COOKIE的内容,可用来取得GET和POST方法发送的表单数据。(1)修改

16、echoexample程序中的代码:$string1=$_GET“name”;$string2=$_GETlove;可改为:$string1=$_REQUEST“name”;$string2=$_REQUEST“love”;,5.5.2 数据输入(8/8),(2)修改ex5_7程序中的代码:echo$_POSTname;echo,您喜爱的运动是:.$_POSTlove;可改为:echo$_ REQUESTname;echo,您喜爱的运动是:.$_ REQUESTlove;例5.8、例5.9,ex5_8.html:调查问卷 姓名 性别男 女 感兴趣的编程语言PHPVB VC+,ex5_9.php

17、:;for($i=0;$i,5.6 PHP5程序的流程控制语句(1/8),5.6.1 分支结构语句1if语句(四种形式)(1)if(表达式)语句组(2)if(表达式)语句组1 else 语句组2,5.6 PHP5程序的流程控制语句(2/8),(3)if(表达式1)语句1 elseif(表达式2)语句2 elseif(表达式n)语句n else 语句n+1,(4)if():.endif通常用于嵌套一段HTML代码于if语句里。,例5.10,例5.11,例5.12$b)echo ab;elseif($=$b)echo a等于b;else echo a,if():.endif,5.6 PHP5程序的

18、流程控制语句(3/8),2switch语句 switch(表达式)case 常量1:语句组1;break;case 常量1:语句组2;break;default:语句组n;,例5.13,5.6 PHP5程序的流程控制语句(4/8),5.6.2 循环结构语句1.while循环 while循环用来在指定的条件内,不断地重复执行指定的语句。其语法如下:while(表达式)语句组,例5.14n;?,5.6 PHP5程序的流程控制语句(5/8),2.do.while循环 do.while循环是先执行,再判断是否要继续执行,也就是说循环至少被执行一次。这种的循环和while循环是不同的(while循环是先

19、判断再执行)。其语法如下:do 语句组 while(表达式);,例5.15;$index+;while($index;?,5.6 PHP5程序的流程控制语句(6/8),3.for循环 for循环是用得非常多的一种循环,它和C语言中相应语句的使用方法相同,其语法如下:for(表达式1;表达式2;表达式3)语句组 例如:5.16n;?,5.6 PHP5程序的流程控制语句(7/8),4.foreach语句 foreach 语句用于循环遍历数组或对象(PHP5之前的版本不支持遍历对象),其格式如下:foreach(array as value)语句组;*每进行一次循环,当前数组元素的值就会被赋值给 v

20、alue 变量(数组指针会逐一地移动),5.6 PHP5程序的流程控制语句(8/8),例:用foreach语句输出给定数组的值;?,5.6.3 跳转语句(1/1),跳转语句有两个:break语句:用来跳出目前执行的循环。continue语句:用于停止目前执行的循环,并回到循 环的条件判断处。,例5.17,例5.18,5.7 PHP5的数组(1/7),数组的作用:能够在单独的变量名中存储一个 或多个值。1数组的三种赋值方式(1)对每一个元素分别赋值:$arr_zoopelicanBird with a big beak,;$arr_zoocheetah“fast cat.;$arr_zoohor

21、se“four-legged animal,;,5.7 PHP5的数组(2/7),(2)同时对多个元素赋值:$arr_zooarray(pelican=Bird with a big beak,cheetah=fast cat.,horse=four-legged animal,);数组可以同时包含整型和字符串型的索引(如果对给出的值没有指定索引,则取当前最大的整数索引值,而新的索引将是该值加一):$arr_zooarray(1,434,jake=23 first lane,6=5,four-legged animal,);等同于$arr_zooarray(0=1,1=434,jake=23

22、first lane,6=5,7=four-legged animal,);,5.7 PHP5的数组(3/7),(3)在数组的下一个空位上增加一个元素(第一个位置是0,第二个位置是1,以此类推):$arr_zooBird with a big beak,;$arr_zoofast cat.;$arr_zoofour-legged animal,;,5.7 PHP5的数组(4/7),2数组的三种取值方式(1)使用数字作为数组下标$value=$arr_zoo1;$value=$arr_zoo1;/下标自动转换为数值$value=$arr_zoo“1”;/下标自动转换为数值(2)使用字符串作为数组

23、下标$value=$arr_zoocheetah;$value=$arr_zoocheetah;*注意:应该始终在用字符串表示的数组索引上加上 引号(单引号或双引号均可),5.7 PHP5的数组(5/7),(3)使用标量变量作为数组下标$key=1;$value=$arr_zoo$key;$key=cheetah;$value=$arr_zoo$key;,5.7 PHP5的数组(6/7),3多维数组 在多维数组中,主数组中的每个元素也是一个数组。在子数组中的每个元素也可以是数组,以此类推。$arr=array(array1=array(0=11,1=12,2=13),array2=array(

24、0=21,1=22,2=23),array3=array(0=31,1=32,2=33);,5.7 PHP5的数组(7/7),4删除数组元素 如果要删除一个数组元素(索引/值对),可以使用unset函数,如下:1,12=2);$arr=56;/增加一元素,即$arr13=56$arrx=42;/增加一元素,其索引为x unset($arr5);/删除元素$arr5 unset($arr);/删除整个数组$arr?,5.8 函数(1/14),5.8.1 函数定义 在PHP中,函数的定义必须使用关键字function开头;并且函数名的命名必须以字母或下划线开头,其后跟字母、数字或下划线。其语法格式

25、如下:function 函数名(参数列表)函数体语句 return 表达式*注:函数名是非大小写敏感的,不过在调用函数的时 候,通常使用其在定义时相同的形式。,5.8 函数(2/14),5.8.2 函数调用 定义了函数之后,可以通过调用函数,执行函数的功能。其调用格式为函数名(实参列表)。1.返回值 PHP中的函数即可以包含返回值,也可以无返回值,且返回值可以是任何类型,包括数组和对象。通常情况,如果函数需要返回多个值,则可以通过返回数组的方法来实现。,例5.19,返回值,5.8 函数(3/14),2.函数参数传递 通过参数列表可以传递信息到函数,该列表是以逗号作为分隔符的变量和常量列表。PH

26、P支持按值传递、通过引用传递以及默认参数等三种参数传递形式。缺省情况下,函数参数通过值传递(因而即使在函数内部改变参数的值,也不会改变函数外部的值)。如果希望允许函数修改它的参数值,必须通过引用传递参数(要求在定义函数时,在该参数前面预先加上引用符号“&”)。,5.8 函数(4/14),例:用引用传递函数参数,5.8 函数(5/14),3.默认参数的值(1)PHP函数可以定义 C+风格的标量参数默认 值,如下:例5.20 运行结果:Making a cup of cappuccino.Making a cup of espresso.,5.8 函数(6/14),(2)PHP还允许使用数组和特殊

27、类型 NULL 作为默认 参数,例如:,5.8 函数(7/14),*注意:参数的默认值必须是常量表达式,不能是变量、类 成员或者函数调用。当使用默认参数时,任何默认参数必须放在任何非 默认参数的右侧;否则,可能函数将不会按照预期 的情况工作。,5.8.3 函数和变量的作用域1.函数参数的作用域(P.110.)2变量作用域范围 变量的作用域指的是变量的有效范围,分全局变量和局部变量。在自定义函数内部生成的变量将使用局部作用域,而在任何函数外部生成的变量则使用全局变量作用域。局部作用域的含义就是,当执行函数时函数内的变量才存在,一旦执行结束,这些变量就会被清除。,5.8 函数(8/14),全局作用

28、域的含义指的是全局变量在文件范围内都不会被清除,除非程序停止执行,但全局变量在函数内部却是不可见的。如果需要在函数内部使用全局变量,则需要在函数中使用global进行变量申明,如下:,5.8 函数(9/14),对于一个函数能够申明的全局变量的最大个数,PHP 没有限制。,在函数内部使用全局变量的第二个办法,是用PHP内置的超全局变量$GLOBALS数组。例如,前面的例子可以写成:,5.8 函数(10/14),在$GLOBALS 数组中,每一个变量为一个元素,索引对应变量名,值对应变量的内容,3使用静态变量 变量的作用范围另一个重要特性是静态变量(static variable)。静态变量仅在局

29、部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。/此例中,每调用Test()函数都会输出$a的值并加1。,5.8 函数(11/14),静态变量的另一种作用:提供了一种处理递归函数的方法。递归函数是一种调用自己的函数,写递归函数时要小心,因为可能会无穷递归下去。因此,必须确保有充分的方法来中止递归。以下这个简单的函数递归计数到10,通过使用静态变量$count来判断何时停止:,5.8 函数(12/14),例:静态变量与递归函数,5.8 函数(13/14),*注意:静态变量可以按照上面的例子声明,即使用数 值或字符串对其赋值。但如果在声明中使用表 达式的结果对其赋值则会导致解析错误。例:

30、声明静态变量的错误方式,5.8 函数(14/14),5.9 文件包含(1/11),文件包含的概念 在PHP中,文件包含有两种方式,即include()和 require()函数。通过include()或require()函数,可以在服务器执行 PHP 文件之前在该文件中插入另一个文件的内容(如函数、页面元素等)。include 和 require的区别 include()和require()函数除了处理错误的方式不同之外,这两个函数在其他方面都是相同的:include()函数会生成一个警告(但是脚本会继续执行),而require()函数会生成一个致命错误(在错误发生后脚本会停止执行)。,5.9

31、 文件包含(2/11),include和require的用途 这两个函数用于创建可在多个页面重复使用的函数、页眉、页脚或元素。这会为开发者节省大量的时间。这意味着开发者可以创建供所有网页引用的标准页眉或菜单文件。当页眉需要更新时,只更新一个包含文件就可以了,或者当向网站添加一张新页面时,仅仅需要修改一下菜单文件(而不是更新所有网页中的链接)。,5.9 文件包含(3/11),include()函数的使用 利用include()函数可获得(获得方式见书P.112.)指定文件中的所有代码,并把代码拷贝到使用include函数的文件中。当一个文件被包含时,被包含文件的代码继承了include函数所在行

32、的变量范围,(即include函数所在行处可用的任何变量,在被包含文件中也都可用)。,5.9 文件包含(4/11),例1:包含文件的变量范围,程序1:文件名为vars.php,其内容如下:,程序2:文件名为test.php,其内容如下:,5.9 文件包含(5/11),例2:在多个页面(default.phpabout.phpcontact.php)上使用的同一菜单文件(menu.php),程序1:文件名为menu.php,其内容如下:Home|About Us|Contact Us,5.9 文件包含(6/11),程序2:文件名为default.php,其内容如下:Welcome to my h

33、ome page Some text,5.9 文件包含(7/11),程序3:文件名为about.php,其内容如下:Guangdong Ocean University College of Information,5.9 文件包含(8/11),程序4:文件名为contact.php,其内容如下:E-,5.9 文件包含(9/11),通过包含文件,可以实现将menu.php文件中所定义的页面元素添加到default、about、contact等程序中,如在浏览器中查看default.php源代码,其内容应该如下:,Home|About Us|Contact Us Welcome to my ho

34、me page Some text,通过使用包含文件,当需要重新命名链接、更改链接顺序或向站点添加另一张网页时,只要简单地更新“menu.php”文件中的文本即可,而无需对其它文件进行改动。,5.9 文件包含(10/11),require()函数的使用 require函数与include所实现功能相同,不同的是它对错误的处理方式。若被包含文件不存在或文件被重名,include函数会生成一个警告(但是脚本会继续执行),而 require函数则会生成一个致命错误(在错误发生后脚本会停止执行)。正因为在文件不存在或被重命名后脚本不会继续执行,因此我们推荐使用 require()而不是 include()。,因此推荐使用require()而不是include(),5.9 文件包含(11/11),Require_once()函数的使用 require_once函数实现的功能与require函数相同,唯一的区别是如果指定的文件已经被包含了,则不会再次包含。require_once函数应用于在脚本执行期间同一个文件有可能被包含超过一次的情况下,确保只被包含一次,以避免函数重定义、变量重新赋值等问题。,5.10 利用Dreamweaver MX 2004编辑PHP程序,(1)创建空白页面(2)打开现有PHP页面(3)保存文件,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号