




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PHP编程基础与实例教程实验指导书PHP编程基础与实例教程实验指导书预备实验 架设Windows下的PHP开发测试服务器0. 实验准备0.1系统环境和PHP相关软件、开发工具l 操作系统:WindowX(Windows95/98/me/XP/NT系列/2000系列/2003)具体到的机房环境,请在Windowsxp环境下做l Web服务器:Apache 2.0.63 (压缩包文件:apache_2.0.63-win32.exe)l PHP:PHP5.2.11 (压缩包文件:php-5.2.11-Win32.zip)l 数据库:MySQL 5.1.39 (压缩包文件:mysql-essentia
2、l-5.1.39-win32.zip)l 脚本编辑器:EditPlus(已安装好):图形化编辑环境,速度慢,功能多,常用于复杂网页设计注: PHP相关软件、开发工具的获得:在我的ftp上下载0.2实验目的能够快速部署Windows下的开发测试服务器环境,以满足同学们在宿舍、家中自己机器上学习、研究和开发PHP程序设计的需要或是实际工作的需要。0.3 实验中的路径说明为说明问题的简单起见,路径为比较简单的示例路径,但已经过测试。实际运用时,路径完全可根据自己需要设定。1. PHP的安装和配置1.1安装 下载PHP-5.2.5-Win32.ZIP软件包,不需要安装,在C盘根目录下建立文件夹C:ph
3、p 。将软件包解压缩到本目录下。 在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.dll ” 去掉前面的“;”(4) 找到 “ ;extension=php_mysqli.dll ” 去掉前面的“;” 修改完php.ini文件后,保存该文件,并
4、复制到C:Windows 目录下。 将C:PHPlibmysql.dll 复制到C:windowssystem32 目录下注:操作系统安装目录,具体位置见表1表1:操作系统安装目录操作系统操作系统安装目录Windows95windowsWindows98windowsWindows mewindowswindowsWindows NT系列winntWindows 2000系列winntWindows 2003windows1.2配置通过修改php.ini中的参数来实现。对MySQL而言,若无特殊要求,一般无须配置。因为PHP在php.ini中已经做好了对MySQL的配置,所以一般无须修改。2.
5、 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的配置文件httpd.conf,按表2提示进行配置:注意:每处
6、的配置要想起作用,必须将行首的#号(注释符号)去掉;表示一个或多个空格表2 Apache配置序号参数名和示例参数值配置方法说明BindAddress(你所用机器的IP地址)修改地址绑定(指定服务器地址)LoadModulephp5_modulec:/php/sapi/php5apache.dll添加将PHP配置为Apache的模块(Apache module)方式Port80修改指定端口ServerAdmin(你的邮箱地址,如ssl)修改指明管理员信箱ServerNamessl修改指明主机名称DocumentRoot"d:Websitehtdocs"修改Web文档发布主目录
7、<Directory"d: Websitehtdocs ">修改该处目录应与Web文档发布主目录一致ScriptAlias/php/"c:/php/" AddTypeapplication/x-httpd-php.php Actionapplication/x-httpd-php"/php/php.exe" 添加指明脚本路径指明PHP脚本扩展名指明PHP脚本解释器程序名DirectoryIndexindex.htmindex.php修改指定默认文档*描述以httpd.conf文件的行文顺序进行*表中路径、地址、主机名、信箱
8、等,实际配置时请根据自己情况进行按表1所述,参考Apache配置文件样本,修改完毕后,保存。测试配置是否成功。1)在编辑完成后,我们还可以通过 “开始/程序/Apache HTTP Server 2.2/Configure Apache Server/Test Configuration"来测试配置文件是否有语法错误等。2)或者打开浏览器敲入:http:/localhost 能否见到服务器到测试页面。能见到则配置成功。3. Apache : Web服务的安装和启动(1) 启动Apache服务:单击:开始->程序-> Apache HTTP Server 2.2->
9、Control Apache service-> Start。(默认情况下,每次操作系统启动时自动启动该服务,可更改)4. 测试Apache服务器对PHP的支持能力测试目的:检验配置后的Apache服务器是否提供了对PHP脚本的解释能力(支持PHP)用EditPlus编写测试脚本,存为d:Websitehtdocsceshi.php,内容为:<?phpecho phpinfo(); ?>说明:phpinfo()是PHP内置函数,用来显示PHP和Apache配置信息,在浏览器中敲入http:/localhost/ceshi.php,回车后若显示类似图1的PHP配置页面(以Win
10、xp下为例),则说明你的Apache服务器已经支持PHP脚本,能够解释PHP脚本了;若不显示类似画面,则配置有误,此时你的Apache不能够解释PHP脚本,需重新配置。 图15. MySQL的安装和启动数据库服务器将mysql-essential-5.1.39-win32.zip解压缩后,双击setup.exe,按照提示,选择custom安装方式,然后一路默认,遇到输入密码的地方,输入123作为密码。测试安装是否成功。单击“开始”,选择“MySQLMySQL Server5.1MySQL Command Line Client”,会出现如下图所示的窗口,然后输入root密码,根据提示操作即可
11、6. 测试PHP与MySQL的协同PHP方面:准备测试脚本connect.php,存放在d:Websitehtdocs下,其内容为:程序2-13:<?$connection=mysql_connect('','root','123') or die('不能连接到MySQL数据库:'.mysql_error();echo '已经成功连接MySQL数据库<br />' mysql_select_db('test')or die('不能选择数据库');
12、echo '连接test数据库已经成功'?>(1) 测试步骤在浏览器地址栏输入:http:/localhost/connect.php,回车,显示如图2所示,则表明PHP 与MySQL能够协同工作了。 图2实验一 PHP基本语法实验0 实验准备0.1实验环境和相关工具软件具体到的机房环境,请在Windowsxp环境下做本实验:l 操作系统:Windowsxpl Web服务器:Apache 2.0.63 默认发布文档路径:c:Apachehtdocsl PHP:PHP5.2.11 安装路径:c:phpl 数据库:MySQL 5.1.39 使用默认路径l 脚本编辑器:记事本或
13、EditPlus-v3.11.463H或Macromedia Dreamweaver MX中文版注意:使用以上脚本编辑器,若要保存为.php文件,必须在保存时指明扩展名为.php尤其是记事本,必须在保存时,单击“保存类型”下拉框,选择“所有文件(*.*)”类型,然后指定文件扩展名是.php,单击“保存”按钮后,保存的文件才能保证是.php文件。常见错误是直接保存,导致保存的文件其实是文本文件,如abc.php.txt等以.txt为扩展名的文本文件。0.2实验目的和内容实验目的:熟练掌握PHP语言的基础语法实验内容:从7个方面完成PHP基本语法实际体验,分列如下: 一、词法结构n 大小写n 语句
14、和分号n 注释n 标识符二、数据类型n 字符串型n 布尔型n 数组型n 对象型n 资源型n 各种数据类型的检测三、变量n 变量的变量n 变量的作用域n 垃圾收集:变量的内存管理四、表达式和操作符n 隐式类型转换n 字符串连接操作符n 自增和自减操作符n 类型转换操作符n 其他操作符五、流控制语句n if语句n switch语句n while语句n for语句n foreach语句n exit语句n return语句(2-12)六、包含代码七、在Web页面中嵌入PHP0.3 实验中的约定所有实验程序均与讲义中的例子相对应,如程序1-1.php,对应讲义中的例子例1-1。1词法结构1.1大小写敏感
15、预备知识 变量区分大小写,内置结构(while,for,if等)及关键字(echo,class等)不区分大小写【2-1】大小写敏感的例子PHP程序2-1送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php$name="hello1,world1"$NAME="hello2,world2"$NaME="hello3,world3"echo "$name=$namen"ECHO "$NAME=$NAMEn"EcHo "$NaME=$NaME&quo
16、t;?>注意:要使运行结果达到真正分行(和HTML输出一致),请将程序2-1中的n换成<br>,即可实现,如下例【2-1br】修改程序2-1后的程序2-1br,直接实现分行(将程序2-1中的n换成<br>)PHP程序2-1br送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php$name="hello1,world1"$NAME="hello2,world2"$NaME="hello3,world3"echo "$name=$name<br>"
17、;ECHO "$NAME=$NAME<br>":EcHo "$NaME=$NaME"?>原因:浏览器不解释(或者说不识别,或忽略)经PHP解释n而成的空白换行,只有遇到<br>这个HTML中的换行标记,才解释成换行。为了直接达到预期换行效果,将不再使用n,而是使用<br>1.2语句和分号预备知识 简单语句 复杂语句 分号的省略【2-2】语句和分号PHP程序2-2送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php$a=10;$b=10;if($a=$b) echo &qu
18、ot;注意:<br>" /简单语句 echo "$a的值等于$b的值<br>" /上面部分为复杂语句echo "hello,world" /此处分号可省略?>1.3注释预备知识 在必要的地方做注释 注释的形式及各自的适用处:Shell形式(#)、C+形式(/)、C形式(/* */)【2-6】C形式的注释作用PHP程序2-6送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php$l=12; $m=13;/*注释从这里开始?><p> Some stuff you
19、 want to be HTML.</p><?=$n=14;*/ echo ("l=$l m=$m n=$n");?><p>Now <b>this</b> is regular HTML</p>1.4标识符(常量标识符)预备知识 使用define()设置常量标识符【2-7】使用define()设置常量标识符PHP程序2-7送到用户浏览器解释后显示的结果(运行结果,显示在浏览 显示在浏览器页面中的结果)<?phpdefine(PUB,”OReilly & Associates”);
20、echo PUB;?>2 数据类型2.1字符串预备知识 字符串的表示 单引号和双引号在字符转义上的不同作用:单引号仅转义反斜杠和单引号【2-8】单引号和双引号在字符转义上的不同作用PHP程序2-8送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php$name=”Sun Shoulong”;/双引号中的变量值将被输出echo “Hi,$name<br>”; echo Hi,$name;/单引号中的变量名将被输出,因为单引号不认为$name是变量?>注意:双引号中的变量,若前面不加反斜杠进行转义(将$原样输出),则在输出字串的时候将
21、输出变量中的值【2-9】单引号仅支持的字符转义:反斜杠和单引号PHP程序2-9送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php$dos_dir=c:windowssystem;$publisher=Tim OReilly;echo “$dos_dir $publisher”;?>2.2布尔型预备知识PHP中为false值的情况【2-10】判断布尔值PHP程序2-10送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php$x=5;$y=”;if($x) echo $x有一个true值<br>if(!$x) ech
22、o $x有一个false值<br>if($y) echo $y有一个true值<br>if(!$y) echo $y有一个false值<br>?>2.3数组型预备知识:数组的创建、遍历;键名:数组元素的下标名称,一般是从0开始的整数,也可以是字符串;键值:数组元素中存储的值【2-11】数组的创建、遍历:发明家记录PHP程序2-11送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#以数字键名引用的方式,通过给各数组元素赋值的方法#直接创建人名数组$person$person0=”Edison”;$person1=”Wa
23、nkel”;$person2=”Crapper”;/*上面的方法可用array方法替代,创建后键名也是数字的,按赋值先后,从0开始依次递增$person=array(Edison,Wankel,Crapper);/一条语句*/#以字串键名引用的方式,通过给各数组元素赋值的方法#直接创建发明家数组$creator$creatorLight bulb=”Edison”;$creatorRotary Engine=”Wankel”;$creatorToilet=”Crapper”;/*上面的方法可用array方法替代,创建后键名也是数字的,按赋值先后,从0开始依次递增$creator=array(L
24、ight bulb=>Edison, Rotary Engine=>Wankel, Toilet=>Crapper);*/#遍历数组$person,显示其内容foreach($person as $name)/访问每个键 echo “Hello,$name<br>”;#遍历数组$creator,显示其内容foreach($creator as $invention=>$inventor) echo “$invention was created by $inventor<br>”;?>2.4对象型预备知识类:OOP的单元,是包含属性(变量)
25、和方法(函数)的结构定义类的定义对象的创建、引用其属性和方法【2-12】类和对象的简单例子PHP程序2-12送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?phpClass Person var $name=; function name($newname=NULL)if(!is_null($newname) $this->name=$newname;return $this->name; $ed=new Person;$ed->name(Edison);printf(“Hello,%s<br>”,$ed->name);$tc=
26、new Person;$tc->name(Crapper);printf(“Look out below,%s<br>”,$tc->name);?>2.5数据类型的检测预备知识数据类型检测函数【2-14】数据类型检测PHP程序2-14送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php$x=2.5;if(is_int($x) echo '$x是整型变量'if(is_float($x) echo '$x是浮点型变量'if(is_string($x) echo '$x是字串型变量'if(i
27、s_bool($x) echo '$x是布尔型变量'if(is_array($x) echo '$x是数组型变量'if(is_object($x) echo '$x是对象型变量'if(is_resource($x) echo '$x是资源型变量'if(is_null($x) echo '$x是NULL型变量'?>3 变量3.1变量的变量预备知识变量的概念和作用;变量的声明和使用;变量的变量【2-15】PHP变量无类型检查,无须声明,类型随用随变PHP程序2-15送到用户浏览器解释后显示的结果(运行结果,显示在
28、浏览器页面中的结果)<?php#PHP变量无类型检查$what="Fred"echo "$what的值=$what<br>"if(is_string($what) echo "$what是字符串型变量<hr>"$what=35;echo "$what的值=$what<br>"if(is_int($what) echo "$what是整型变量<hr>"$what=array('Fred','35','wi
29、lma');echo "$what的值为:<br>"foreach($what as $e) echo "$e<br>"if(is_array($what) echo "$what是数组型变量"?>【2-16】空变量的例子PHP程序2-16送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#一个没有设置值的变量,它的值是NULL,#表示它是一个空变量if($uninitialized_variable=NULL) /此句可换为: if(is_null($unini
30、tialized_variable) echo "$uninitialized_variable是空变量"?>【2-17】变量的变量PHP程序2-17送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#变量的变量$r='i'$r=1;echo "因为$r=$r<br>"echo "所以$r=$r<br>"echo "又因为$r=".$r."<br>"echo '故$r='.$r;echo
31、"<hr>:-)你明白了吗?"?>3.2变量的作用域预备知识变量按其作用域分为:局部变量、全局变量。静态变量、函数的参数属于局部变量;从局部访问全局变量的方法;从全局访问局部变量的方法【2-19】不能从全局(函数外部)直接访问局部变量PHP程序2-19送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#下面的函数更新了一个局部变量而不是全局变量function update_counter() $counter+;/执行完本句即函数结束时,$counter的值被PHP抛弃,该变量所占内存资源被收回$counter=10;u
32、pdate_counter();echo $counter;/这个$counter是全局变量?>【2-20】从局部访问全局变量,方法1:使用global关键字声明PHP程序2-20送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#在函数内访问全局变量-方法1:使用global关键字声明function update_counter() global $counter;/告诉PHP,$counter是全局中那个$counter $counter+;$counter=10;update_counter();echo $counter;?>【2-21】
33、从局部访问全局变量,方法2:引用全局变量数组$GLOBALSPHP程序2-21送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#在函数内访问全局变量-方法2:引用全局变量数组$GLOBALS中键名为counter的那个元素function update_counter() $GLOBALS'counter'+;/也可以写成:$GLOBALScounter+;$counter=10;update_counter();echo $counter;?>【2-22】使用静态变量的好处::使全局可间接访问到PHP程序2-22送到用户浏览器解释后显
34、示的结果(运行结果,显示在浏览器页面中的结果)<?php#使用静态变量的方法,强制保留局部变量上#次调用结束时的值,使全局可间接访问到function update_counter() static $counter=0;/这个$counter是局部的变量,声明为静态,并赋初始值0 $counter+; echo "局部静态变量$counter这时的值=$counter<br>"$counter=10;/这个$counter是全局的变量update_counter();update_counter();echo "全局变量$counter这时的值
35、=$counter"?>【2-23】全局不可直接访问局部变量(可通过将局部变量声明为静态的方法,参见2-22)PHP程序2-23送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#函数参数作为一种局部变量,是不能直接被外部访问的function greet($name) echo "Hello,$name<br>"greet("孙寿龙");if($name=null)echo '$name是一个空变量,访问不到!'?>3.3垃圾收集预备知识无用变量的收回;PHP内存管理;
36、引用计算;写时复制【2-24】PHP的写时复制PHP程序2-24<?php#PHP通过使用引用计算和写时复制进行内存管理从而节省了时间和内存#一、写时复制/对共享同一首地址的多个变量,修改其中一个,如$worker,则此时为$worker分配新内存空间,/将其新元素内容写入该空间,将其旧元素内容复制到该空间/这就是写时复制/发生写时复制,为$worker开辟新空间,将$worker最新内容复制到这里,以不影响$other的内容$worker1=36; /同时发生引用计算:原$worker与$other共享的那个首地址引用的变量名减少1个,只剩下了$other(引用计数减少1)echo &
37、quot;修改数组$worker的第二个元素,发生写时复制及引用计算后,<br>"echo "新数组$other的内容:<br>"foreach($other as $a) echo "$a<br>"echo "新数组$worker的内容:<br>"foreach($worker as $b) echo "$b<br>" echo "是不是很好玩?"?>PHP解释结果(HTML输出)(右键单击该页面,在快捷菜单中单击“查
38、看源文件”命令可看到)送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)【2-25】垃圾收集:变量的回收使用unset()回收变量(释放变量)PHP程序2-25送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#垃圾收集:变量的回收使用unset()释放变量echo "从未对$name赋过值,这时:<br>"$s1=isset($name);/$s1为falseif($s1) echo "$name已存在,其值=$name<br>"else echo "$name不存在
39、,其值=$name<br>"$name="Fred"$s1=isset($name);/$s1为trueif($s1) echo "$name已存在,其值=$name<br>"else echo "$name不存在,其值=$name<br>"echo "现在从内存中释放(删除)$name:<br>"unset($name);$s1=isset($name);/$s1为falseif($s1) echo "$name已存在,其值=$name<b
40、r>"else echo "$name不存在,其值=$name<br>"?>4. 表达式和操作符4.1隐式类型转换预备知识 数字间进行字符串拼接的规则;字符串转换数字后的数字值规则【2-26】数字间进行字符串拼接的规则:数字首先变为字串,然后再拼接PHP程序2-26送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#数字减进行字符串连接的类型转换:数字都变为字符串,再连接$a=3;$b=2.74;$c=$a.$b;echo "$c=$c"?>【2-27】字符串转换数字后的
41、数字值规则假定以数字开始,该数字即为转换后的数字值;若未找到数字则转换后的数字值为0;若开头的数字包含一个句点或大写或小写的E,则转换后的数字值为浮点型PHP程序2-27送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#字符串转成数字后的数字值规则$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;/1101echo "
42、;$a=$a<br>"echo "$b=$b<br>"echo "$c=$c<br>"echo "$d=$d<br>"?>4.2字符串连接操作符预备知识 字符串连接操作符;数字与字串连接时,数字先转换成字串【2-28】数字在与字符串连接时,先自动变成字符串PHP程序2-28送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#数字在与字符串连接时,先自动变成字符串$n=5;$s="There are ".$n.
43、" ducks"echo "$s=$s"?>类似的,如2-29:【2-29】和2-28差不多的程序PHP程序2-29送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#效果同程序2-28$n=5;$s="There are $n ducks"echo "$s=$s"?>4.3自增自减操作符预备知识 数字的自增自减(按数字顺序);字母的自增自减(按字母顺序)【2-30】PHP程序2-30送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<
44、?php#字母的自增自减运算echo "小写字母自增:<hr>"$a="a"while($a<="z") echo $a+; echo "<br>"echo "大写字母自增:<hr>" $a="A"while($a<="Z") echo $a+; echo "<br>"?> <font color=red>请编程验证:</font><br&g
45、t;<table width="75%" border="1"> <tr> <td>字符串</td><td>字符串+</td> </tr><tr> <td>"a"</td><td>"b"</td> </tr><tr> <td>"z"</td><td>
46、;"a"</td> </tr><tr> <td>"spaz"</td><td>"spba"</td> </tr> <tr> <td>"K9"</td><td>"L0"</td> </tr> <tr> <td>"
47、42"</td><td>"43"</td> </tr></table>(该图显示的是部分结果)4.4类型转换操作符预备知识 类型转换操作符;类型转换的临时性;类型转换的真正实现【2-31】类型转换的临时性PHP程序2-31送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#转换类型只是让别人临时以某种格式接收自己,并不影响自己的本来面貌$a="5"$b=(int)$a;/这时,$a仍为字符串型if(is_string(
48、$a) echo '$a仍是字符串型'?>【2-32】类型转换的真正实现PHP程序2-32送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#转换自身类型并保值$a="5"if(is_string($a) echo "开始,$a是字符串型,值为:$a<br>"$a=(int)$a;if(is_int($a) echo "转换类型并自赋值后,$a是整型,值为:$a<br>"?>4.5其他操作符预备知识 错误抑制操作符(例子程序见2-13);三
49、元操作符【2-33】三元操作符PHP程序2-33送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#三元操作符使用的例子$a=1;$b=2;echo "$a=$a,$b=$b<br>"echo $a>$b?'$a>$b':'$a<$b'?>5.流控制语句5.1 if语句预备知识 if结构、if-else结构、if-else链接(层进)、if-elseif结构、if-else-endif结构【2-34】使用if-else-endif结构PHP程序2-34送到用户浏览
50、器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#if语句的使用echo "常见使用方式:C语言的方式:<br>"$user_validated=true;if($user_validated) echo "欢迎你!<hr>" $greed=1;else echo "对不起,禁止访问!<hr>" exit;echo "还可使用PHP提供的另一种方式:if-endif结构<br>"$user_validated=""if($u
51、ser_validated): /注意冒号 echo "欢迎你!<hr>" $greed=1;else:/注意冒号 echo "对不起,禁止访问!<hr>" exit;endif; /句尾是分号,不是冒号?>【2-35】if语句的使用:嵌入到HTML中(表单验证)PHP程序2-35送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#if语句的使用:嵌入到HTML中(表单验证)$name="Sun Shoulong"$user_validated="1"
52、if($user_validated): ?><table border=1> <tr> <td>欢迎你:</td><td><?=$name?></td> </tr></table><? else:?>请重新登陆!<? endif;/*此处的分号可省略*/ ?>【2-36】if语句的链接(层进)(使用if-else结构)PHP程序2-36送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#if语句的链接(层进) (使用if-
53、else结构)$fenshu=61;echo "你的分数是:$fenshu,属于:"if($fenshu>90) print("优秀");else if($fenshu>80&&$fenshu<=90) print("良好"); else if($fenshu>70&&$fenshu<=80) print("中等"); else if($fenshu>60&&$fenshu<=70) print("刚及格"
54、); else if($fenshu<60) print("差");?>【2-37】if语句的链接(层进)(使用if-elseif结构)PHP程序2-37送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#if语句的链接(层进)(使用if-elseif结构)#阅读性比2-36好echo "本程序阅读性比程序2-36好,以下是运行结果<br>"$fenshu=61;echo "你的分数是:$fenshu,属于:"if($fenshu>90) print("优秀&q
55、uot;);elseif($fenshu>80&&$fenshu<=90) print("良好");elseif($fenshu>70&&$fenshu<=80) print("中等");elseif($fenshu>60&&$fenshu<=70) print("刚及格");elseif($fenshu<60) print("差");?>【2-38】用if结构的HTML输出一般做法PHP程序2-38送到用户浏览器解释后
56、显示的结果(运行结果,显示在浏览器页面中的结果)<?php#用if结构的HTML输出一般做法$fenshu=61;echo "以下结果用if结构嵌入HTML实现,程序可读性稍差<br>"?><table border=1> <tr> <td><? if($fenshu>60) echo "及格"else echo "不及格"?></td> </tr></table><br>用三元操作符简化使更简洁的例子见2-3
57、9【2-39】用三元操作符简化使2-38更简洁的例子PHP程序2-39送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#用三元操作符简化使2-38更简洁的例子$fenshu=61;echo "以下结果用三元操作符简化if结构实现,程序可读性好<br>"?><table border=1> <tr> <? echo "<td>".($fenshu>60?"及格":"不及格")."</td>&qu
58、ot; ?> </tr></table><br>进一步的拼接字串的例子见程序2-39a.php【2-39a】用三元操作符简化使2-39更简洁的例子PHP程序2-39a<?php#比2-39字串拼接更复杂的例子$fenshu=61;echo "以下结果用三元操作符结合复杂字串拼接实现,程序可读性一般,但移植性好<br>"echo "<table border=1><tr><td>".($fenshu>60?"及格":"不及格&
59、quot;)."</td></tr></table>"?>PHP解释结果(HTML输出)(右键单击该页面,在快捷菜单中单击“查看源文件”命令可看到)送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)5.2 switch语句预备知识 switch的C语言形式、switch-endswitch结构、switch语句中case的合并【2-40】switch-endswith结构的用法PHP程序2-40送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#switch-endswi
60、th结构的用法$fenshu=61;$f=(int)($fenshu/10);echo "你的分数是:$fenshu,属于:"switch($f): case 9: print("优秀");break; case 8: print("良好");break; case 7: print("中等");break; case 6: print("刚及格");break; default: print("差");break;endswitch; ?>【2-41】case的合并PHP程序2-41送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?php#case的合并$fenshu=61;$f=(int)($fenshu/10);echo "你的分数是:$fenshu,属于:"switch($f): case 9: case 8: case 7: case 6: print("及格"); break; defau
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年纺织品检验员考后总结试题及答案
- 塔吊施工考试题及答案
- 广告设计师证书考试传播媒介选择考题及答案
- 团课能力测试题及答案
- 康复考试题及答案
- 广告设计中的用户心理因素分析试题及答案
- 在线学考试试题及答案
- 快消品行业中的设计策略与应用案例试题及答案
- 政协遴选考试题及答案
- 社会责任感对广告设计的影响试题及答案
- 08第三方人员访问控制管理制度
- 歌剧排练与观摩知到智慧树章节测试课后答案2024年秋四川音乐学院
- 临床应用医疗技术制度
- 2024年08月中国国新基金管理有限公司招考笔试历年参考题库附带答案详解
- 护理N2级岗位竞聘
- 肿瘤的化学治疗
- 《项目风险评估》课件
- 北京市2024年中考道德与法治真题试卷(含答案)
- 航空航天凝胶应用
- 陕西省2024年中考化学真题(含答案)
- 2024年度危废培训完整课件
评论
0/150
提交评论