网站规划建设实验指导书_第1页
网站规划建设实验指导书_第2页
网站规划建设实验指导书_第3页
网站规划建设实验指导书_第4页
网站规划建设实验指导书_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 网站规划与建设实验指导书网站规划与建设实验指导书天津职业技术师范大学网络教研室2011年9月实验一 HTML基础实验项目1网页设计基础【实验目的】1掌握利用因特网进行信息游览、搜索,下载网页、图片、文字和文件; 2对给定的网站,能指出网站的链接结构、目录结构、页面布局方式。 【实验环境】Window2000操作系统,机器联网。【实验内容】1、根据网站制作的需要,从网上下载网页制作时需要的文字、小图片、动画及flash。 2、上网访问实际若干网站,了解各网站的风格(主题图形形象、导航是否清晰,整体色调的搭配是否协调,主题是否突出等)、页面布局方式;在网上找出下列版面布局的结构形式: “T”结构

2、布局“口”型(“国”字型)布局“三”型布局 对称对比布局 POP布局 拐角型布局 标题正文型 封面型(主题图片型)3、利用搜索引擎,浏览因特网上较为著名的5个网站,记录这些网站的名称、网站地址和以及相应的网页文件格式(扩展名); 4、查看我院WWW网站主页的源代码,收藏到收藏夹中,将其设为主页,并指出该网站的链接结构、目录结构和页面布局方式。 项目2 HTML语言(一)【实验目的】1掌握<head></head>的<title>标记,和<meta>标记;2掌握使用<body>标记设置网页背景颜色和文本颜色。学习使用分段标记<p&

3、gt;</p>;3掌握使用<font>标记设置文字的属性;4掌握在网页中插入背景图片;5掌握在网页中插入水平线,并设置水平线的属性;6掌握在网页中插入背景音乐。 【实验环境】Windows xp【实验内容】1、制作一个简单的网页sy2-1.htm,用记事本编辑,内容为个人简介信息。 要求:l 搜索关键字为“个人”“主页”“简介”,标题为我的个人简介。 l 背景为#33ccff,文本颜色为黑色,文本需分段表示。 2、过记事本编辑网页sy2-2.htm,内容为李白的诗“静夜思”。要求:每行诗为一个段落,四行文字颜色不同,字体不同。 3、通过记事本编辑网页sy2-3.htm,

4、实现如图页面。 4、通过记事本编辑网页sy2-4.htm,实现如下页面。图片自选,插入背景音乐“浮云.mp3”。5、通过记事本编辑网页sy2-5.htm,实现如下页面。项目3 HTML语言(二)【实验目的】掌握网页超链接的使用及滚动页面信息的制作【实验环境】Windows xp【实验内容】1实现网页内部、外部的链接的设置2实现在页面中实现背景图片与前景图的显示实验过程及步骤:一、实验步骤阶段1:制作用户登录界面、产品登录页面并链接到首页需求说明图示(一)需求说明图示(二)实现思路及关键代码(实验报告中详述)1、 超链接<A>标签中href属性定义了链接的方向<A href=“

5、login.html”>登录</A>2、<MARQUEE>标签的scrolldelay属性定义滚动速度< MARQUEE scrolldelay=“150”>精品推荐</ MARQUEE >阶段2:制作注册页面、关于拍拍页面并链接到首页需求说明图示(一)需求说明图示(二)-使下图中的图片在页面上滚动滚动项目4 HTML语言(三)【实验目的】1掌握使用表格标记,设置表格属性。【实验环境】Windows xp【实验内容】1、使用表格标签,制作如下图所示的页面。要求:l 表格内容水平居中对齐,垂直居中对齐,页面标题为音乐网站。.l 设置超级链接颜

6、色l 点击播放,即可播放对应的音乐,音乐在网上下载。项目5 HTML语言(四) 【实验目的】1掌握建立框架; 【实验环境】Windows xp【实验重点及难点】掌握框架的使用。【实验内容】1、制作书本148-149页操作题第9题,熟悉框架页面的制作。项目6 HTML语言(五)【实验目的】1掌握表单相关标记的使用; 2掌握3个页面的框架的定义和属性设置。 【实验环境】Windows xp。【实验内容】1、建立如下表单页面: 2、建立如下框架页面,相关图片建议试着自己制作,也可从网上下载。 实验二 CSS应用实验【实验目的】1掌握表单相关标记的使用; 2掌握3个页面的框架的定义和属性设置。 【实验

7、环境】Windows xp。【实验内容】1创建表格2应用表格设置网页要求:1.实现跨行跨列的复杂表格2.能够对表格进行美化修饰实验过程及步骤:一、实验步骤阶段1:运用样式修饰文字训练要点:CSS的基本语法行内样式表的使用需求说明:实现思路和关键代码:(实验报告中详述)CSS行内样式表:<P style=“color:#0000FF”></P>阶段2:采用行内样式表的方式修饰拍拍公告需求说明图示:采用行内样式表的方式修饰拍拍公告阶段3:使用内嵌样式修饰表格训练要点:内嵌样式表的基本语法类样式的创建需求说明:实现思路及关键代码:(实验报告中详述) 超链接伪类的使用以及类样式

8、的定义 a:link /* 未被访问的链接 */a:visited /* 已被访问过的链接 */a:hover /* 鼠标悬浮在上的链接*/a:active /* 鼠标点中激活链接 */阶段4:使用CSS内嵌样式修饰商品类目需求说明:使用CSS内嵌样式修饰商品类目 实现思路及关键代码(实验报告中详述)阶段5:对拍拍注册页面进行修饰训练要点:创建外部样式表并在页面中引入创建常用样式,细边框的文本框和无边框的按钮 需求说明:实现思路及关键代码(实验报告中详述)无边框的按钮.picButton background-image:url(images/btn.gif); border:0 px; ma

9、rgin: 0px; padding: 0px; height: 26px; width: 99px; font-size: 14px; 细边框的文本框.text border-width:1px;border-style:solid; 外部样式表文件的引入阶段6:定义外部样式文件修饰拍拍用户登录需求说明:定义外部样式文件修饰拍拍用户登录实现思路及关键代码(实验报告中详述)实验三 PHP Web应用编程项目1 架设Windows下的PHP开发测试服务器【实验目的】能够快速部署Windows下的开发测试服务器环境,以满足同学们在宿舍、家中自己机器上学习、研究和开发PHP程序设计的需要或是实际工作

10、的需要。【实验环境】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-essential-5.1.39-win32.zip)l 脚本编辑器:EditPlus(已安装好):图形化编辑环境,速度慢,功能多,常用于复杂网页设计【实验内容】1. P

11、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.dll ” 去掉前面的“;”(4) 找到

12、 “ ;extension=php_mysqli.dll ” 去掉前面的“;” 修改完php.ini文件后,保存该文件,并复制到C:Windows 目录下。 将C:PHPlibmysql.dll 复制到C:windowssystem32 目录下注:操作系统安装目录,具体位置见表1表1:操作系统安装目录操作系统操作系统安装目录Windows95windowsWindows98windowsWindows mewindowswindowsWindows NT系列winntWindows 2000系列winntWindows 2003windows1.2配置通过修改php.ini中的参数来实现。对M

13、ySQL而言,若无特殊要求,一般无须配置。因为PHP在php.ini中已经做好了对MySQL的配置,所以一般无须修改。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.co

14、nf configuration File,打开Apache的配置文件httpd.conf,按表2提示进行配置:注意:每处的配置要想起作用,必须将行首的#号(注释符号)去掉;表示一个或多个空格表2 Apache配置序号参数名和示例参数值配置方法说明BindAddress(你所用机器的IP地址)修改地址绑定(指定服务器地址)LoadModulephp5_modulec:/php/sapi/php5apache.dll添加将PHP配置为Apache的模块(Apache module)方式Port80修改指定端口ServerAdmin(你的邮箱地址,如ssl)修改指明管理员信箱ServerNames

15、sl修改指明主机名称DocumentRoot"d:Websitehtdocs"修改Web文档发布主目录<Directory"d: Websitehtdocs ">修改该处目录应与Web文档发布主目录一致ScriptAlias/php/"c:/php/" AddTypeapplication/x-httpd-php.php Actionapplication/x-httpd-php"/php/php.exe" 添加指明脚本路径指明PHP脚本扩展名指明PHP脚本解释器程序名DirectoryIndexind

16、ex.htmindex.php修改指定默认文档*描述以httpd.conf文件的行文顺序进行*表中路径、地址、主机名、信箱等,实际配置时请根据自己情况进行按表1所述,参考Apache配置文件样本,修改完毕后,保存。测试配置是否成功。1)在编辑完成后,我们还可以通过 “开始/程序/Apache HTTP Server 2.2/Configure Apache Server/Test Configuration"来测试配置文件是否有语法错误等。2)或者打开浏览器敲入:http:/localhost 能否见到服务器到测试页面。能见到则配置成功。3. Apache : Web服务的安装和启动

17、(1) 启动Apache服务:单击:开始->程序-> Apache HTTP Server 2.2-> Control Apache service-> Start。(默认情况下,每次操作系统启动时自动启动该服务,可更改)4. 测试Apache服务器对PHP的支持能力测试目的:检验配置后的Apache服务器是否提供了对PHP脚本的解释能力(支持PHP)用EditPlus编写测试脚本,存为d:Websitehtdocsceshi.php,内容为:<?phpecho phpinfo(); ?>说明:phpinfo()是PHP内置函数,用来显示PHP和Apache

18、配置信息,在浏览器中敲入http:/localhost/ceshi.php,回车后若显示类似图1的PHP配置页面(以Winxp下为例),则说明你的Apache服务器已经支持PHP脚本,能够解释PHP脚本了;若不显示类似画面,则配置有误,此时你的Apache不能够解释PHP脚本,需重新配置。 图15. MySQL的安装和启动数据库服务器将mysql-essential-5.1.39-win32.zip解压缩后,双击setup.exe,按照提示,选择custom安装方式,然后一路默认,遇到输入密码的地方,输入123作为密码。测试安装是否成功。单击“开始”,选择“MySQLMySQL Server5

19、.1MySQL Command Line Client”,会出现如下图所示的窗口,然后输入root密码,根据提示操作即可 6. 测试PHP与MySQL的协同PHP方面:准备测试脚本connect.php,存放在d:Websitehtdocs下,其内容为:程序2-13:<?$connection=mysql_connect('','root','123') or die('不能连接到MySQL数据库:'.mysql_error();echo '已经成功连接MySQL数据库<br />

20、9; mysql_select_db('test')or die('不能选择数据库'); echo '连接test数据库已经成功'?>(1) 测试步骤在浏览器地址栏输入:http:/localhost/connect.php,回车,显示如图2所示,则表明PHP 与MySQL能够协同工作了。 图2项目2 PHP基本语法实验【实验目的】熟练掌握PHP语言的基础语法【实验环境】WindowsXP,PHP服务器 【实验内容】从7个方面完成PHP基本语法实际体验,分列如下: 一、词法结构n 大小写n 语句和分号n 注释n 标识符二、数据类型n 字符串

21、型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页面中嵌入PHP1词法结构1.1大小写敏感预备知识 变量区分大小写,内置结构(while,for,if等)及关键字(echo,class等)不区分大小写【2-1】大小写敏感的例子PH

22、P程序2-1送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?$name="hello1,world1"$NAME="hello2,world2"$NaME="hello3,world3"echo "$name=$namen"ECHO "$NAME=$NAMEn"EcHo "$NaME=$NaME"?>注意:要使运行结果达到真正分行(和HTML输出一致),请将程序2-1中的n换成<br>,即可实现,如下例【2-1br】修改程序2-

23、1后的程序2-1br,直接实现分行(将程序2-1中的n换成<br>)PHP程序2-1br送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?$name="hello1,world1"$NAME="hello2,world2"$NaME="hello3,world3"echo "$name=$name<br>"ECHO "$NAME=$NAME<br>":EcHo "$NaME=$NaME"?>原因:浏览器不解

24、释(或者说不识别,或忽略)经PHP解释n而成的空白换行,只有遇到<br>这个HTML中的换行标记,才解释成换行。为了直接达到预期换行效果,将不再使用n,而是使用<br>1.2语句和分号预备知识 简单语句 复杂语句 分号的省略【2-2】语句和分号PHP程序2-2送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?if($a=$b) echo "注意:<br>" /简单语句 echo "$a的值等于$b的值<br>" /上面部分为复杂语句echo "hello,wo

25、rld" /此处分号可省略?>1.3注释预备知识 在必要的地方做注释 注释的形式及各自的适用处:Shell形式(#)、C+形式(/)、C形式(/* */)【2-6】C形式的注释作用PHP程序2-6送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?$l=12; $m=13;/*注释从这里开始?><p> Some stuff you want to be HTML.</p><?=$n=14;*/ echo ("l=$l m=$m n=$n");?><p>Now <b

26、>this</b> is regular HTML</p>1.4标识符(常量标识符)预备知识 使用define()设置常量标识符【2-7】使用define()设置常量标识符PHP程序2-7送到用户浏览器解释后显示的结果(运行结果,显示在浏览 显示在浏览器页面中的结果)<?define(PUB,”OReilly & Associates”);echo PUB;?>2 数据类型2.1字符串预备知识 字符串的表示 单引号和双引号在字符转义上的不同作用:单引号仅转义反斜杠和单引号【2-8】单引号和双引号在字符转义上的不同作用PHP程

27、序2-8送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?$name=”Sun Shoulong”;/双引号中的变量值将被输出echo “Hi,$name<br>”; echo Hi,$name;/单引号中的变量名将被输出,因为单引号不认为$name是变量?>注意:双引号中的变量,若前面不加反斜杠进行转义(将$原样输出),则在输出字串的时候将输出变量中的值【2-9】单引号仅支持的字符转义:反斜杠和单引号PHP程序2-9送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?$dos_dir=c:windowssystem;$p

28、ublisher=Tim OReilly;echo “$dos_dir $publisher”;?>2.2布尔型预备知识PHP中为false值的情况【2-10】判断布尔值PHP程序2-10送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?$x=5;$y=”;if($x) echo $x有一个true值<br>if(!$x) echo $x有一个false值<br>if($y) echo $y有一个true值<br>if(!$y) echo $y有一个false值<br>?>2.3数组型预备知识:数组的创建、

29、遍历;键名:数组元素的下标名称,一般是从0开始的整数,也可以是字符串;键值:数组元素中存储的值【2-11】数组的创建、遍历:发明家记录PHP程序2-11送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?#以数字键名引用的方式,通过给各数组元素赋值的方法#直接创建人名数组$person$person0=”Edison”;$person1=”Wankel”;$person2=”Crapper”;/*上面的方法可用array方法替代,创建后键名也是数字的,按赋值先后,从0开始依次递增$person=array(Edison,Wankel,Crapper);/一条语句*/#

30、以字串键名引用的方式,通过给各数组元素赋值的方法#直接创建发明家数组$creator$creatorLight bulb=”Edison”;$creatorRotary Engine=”Wankel”;$creatorToilet=”Crapper”;/*上面的方法可用array方法替代,创建后键名也是数字的,按赋值先后,从0开始依次递增$creator=array(Light bulb=>Edison, Rotary Engine=>Wankel, Toilet=>Crapper);*/#遍历数组$person,显示其内容foreach($person as $name)/

31、访问每个键 echo “Hello,$name<br>”;#遍历数组$creator,显示其内容foreach($creator as $invention=>$inventor) echo “$invention was created by $inventor<br>”;?>2.4对象型预备知识类:OOP的单元,是包含属性(变量)和方法(函数)的结构定义类的定义对象的创建、引用其属性和方法【2-12】类和对象的简单例子PHP程序2-12送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?Class Person var $nam

32、e=; 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=new Person;$tc->name(Crapper);printf(“Look out below,%s<br>”,$tc->name);?>2.5资源型预备知识:资源的概念:以数据库应用为例,在同

33、时有众多的数据库连接存在时,要进行查询和关闭连接等操作,必须指明这些操作是对哪个连接的,所以有必要给每个连接赋予一个标识值,一般是整数。这种标识值的数据类型称为资源型。资源的回收:程序结束时资源自动关闭,资源值被回收;作为局部变量的资源,当函数调用结束时,该变量的值自动被PHP收回;显示地关闭资源【2-13】类和对象的简单例子<?/连接数据库$hostname=""$username=""$password=""echo "开始建立与服务器的连接<br>"/$server_link为资源型变量$s

34、erver_link=mysql_connect($hostname,$username,$password) or die ("连接服务器失败!程序中断执行!");if($server_link) echo "与服务器的连接成功!<br>"echo "开始打开数据库test<br>"/$db_link为资源型变量$db_link=mysql_select_db("test",$server_link) or die ("连接数据库失败!程序中断执行!");/die是ex

35、it的别名,它们的作用是强制中断程序执行/若程序在这里终止执行,则上面的资源型变量所占内存资源将自动回收(释放资源型变量)echo "打开数据库test成功!<br>"echo "开始从数据库test的表abc中取出数据<br>"/将查询结果存入数组(遍历记录集,将记录集中的数据转到数组)$sql="select * from abc"/$result为资源型变量$result=mysql_query($sql,$server_link);$i=0;while($temp_array =mysql_fetch_

36、array($result) $abc_array$i0=$temp_array "a" $abc_array $i1=$temp_array "b"$abc_array $i2=$temp_array "c"$i+; echo "取出数据完毕!<br>"mysql_free_result($result);/释放记录集,这是显式地关闭资源,若程序终止执行,该关闭将自动进行echo "开始关闭与服务器的连接<br>"/断开数据库连接,这也是显式地使用关闭函数回收资源变量$

37、db_close=mysql_close($server_link);/ $db_close为布尔型变量if($db_close) echo "关闭与服务器的连接成功!<br>"else exit("关闭与服务器的连接失败!程序中断执行!");echo "开始显示数据<br>"/将数组中的数据输出到浏览器(各列以双等号间隔)echo "a列数据=b列数据=c列数据<br>"for($i=0;$i<count($abc_array);$i+)echo $abc_array$i

38、0."=". $abc_array$i1."=". $abc_array$i2."<br>"echo "显示数据结束,程序执行完毕。"?>PHP解释结果(HTML输出)(右键单击该页面,在快捷菜单中单击“查看源文件”命令可看到)送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)2.6数据类型的检测预备知识数据类型检测函数【2-14】数据类型检测PHP程序2-14送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?$x=2.5;if(is_int($x)

39、echo '$x是整型变量'if(is_float($x) echo '$x是浮点型变量'if(is_string($x) echo '$x是字串型变量'if(is_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型变量'

40、?>3 变量3.1变量的变量预备知识变量的概念和作用;变量的声明和使用;变量的变量【2-15】PHP变量无类型检查,无须声明,类型随用随变PHP程序2-15送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?#PHP变量无类型检查$what="Fred"echo "$what的值=$what<br>"if(is_string($what) echo "$what是字符串型变量<hr>"$what=35;echo "$what的值=$what<br>"

41、;if(is_int($what) echo "$what是整型变量<hr>"$what=array('Fred','35','wilma');echo "$what的值为:<br>"foreach($what as $e) echo "$e<br>"if(is_array($what) echo "$what是数组型变量"?>【2-16】空变量的例子PHP程序2-16送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面

42、中的结果)<?#一个没有设置值的变量,它的值是NULL,#表示它是一个空变量if($uninitialized_variable=NULL) /此句可换为: if(is_null($uninitialized_variable) echo "$uninitialized_variable是空变量"?>【2-17】变量的变量PHP程序2-17送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?#变量的变量$r='i'$r=1;echo "因为$r=$r<br>"echo "所以$r

43、=$r<br>"echo "又因为$r=".$r."<br>"echo '故$r='.$r;echo "<hr>:-)你明白了吗?"?>3.2变量的作用域预备知识变量按其作用域分为:局部变量、全局变量。静态变量、函数的参数属于局部变量;从局部访问全局变量的方法;从全局访问局部变量的方法【2-19】不能从全局(函数外部)直接访问局部变量PHP程序2-19送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?#下面的函数更新了一个局部变量而不是全局

44、变量function update_counter() $counter+;/执行完本句即函数结束时,$counter的值被PHP抛弃,该变量所占内存资源被收回$counter=10;update_counter();echo $counter;/这个$counter是全局变量?>【2-20】从局部访问全局变量,方法1:使用global关键字声明PHP程序2-20送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?#在函数内访问全局变量-方法1:使用global关键字声明function update_counter() global $counter;/告诉P

45、HP,$counter是全局中那个$counter $counter+;$counter=10;update_counter();echo $counter;?>【2-21】从局部访问全局变量,方法2:引用全局变量数组$GLOBALSPHP程序2-21送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?#在函数内访问全局变量-方法2:引用全局变量数组$GLOBALS中键名为counter的那个元素function update_counter() $GLOBALS'counter'+;/也可以写成:$GLOBALScounter+;$counte

46、r=10;update_counter();echo $counter;?>【2-22】使用静态变量的好处::使全局可间接访问到PHP程序2-22送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?#使用静态变量的方法,强制保留局部变量上#次调用结束时的值,使全局可间接访问到function update_counter() static $counter=0;/这个$counter是局部的变量,声明为静态,并赋初始值0 $counter+; echo "局部静态变量$counter这时的值=$counter<br>"$count

47、er=10;/这个$counter是全局的变量update_counter();update_counter();echo "全局变量$counter这时的值=$counter"?>【2-23】全局不可直接访问局部变量(可通过将局部变量声明为静态的方法,参见2-22)PHP程序2-23送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?#函数参数作为一种局部变量,是不能直接被外部访问的function greet($name) echo "Hello,$name<br>"greet("孙寿龙"

48、;);if($name=null)echo '$name是一个空变量,访问不到!'?>3.3垃圾收集预备知识无用变量的收回;PHP内存管理;引用计算;写时复制【2-24】PHP的写时复制PHP程序2-24<?#PHP通过使用引用计算和写时复制进行内存管理从而节省了时间和内存#一、写时复制/对共享同一首地址的多个变量,修改其中一个,如$worker,则此时为$worker分配新内存空间,/将其新元素内容写入该空间,将其旧元素内容复制到该空间/这就是写时复制/发生写时复制,为$worker开辟新空间,将$worker最新内容复制到这里,以不影响$other的内容$wor

49、ker1=36; /同时发生引用计算:原$worker与$other共享的那个首地址引用的变量名减少1个,只剩下了$other(引用计数减少1)echo "修改数组$worker的第二个元素,发生写时复制及引用计算后,<br>"echo "新数组$other的内容:<br>"foreach($other as $a) echo "$a<br>"echo "新数组$worker的内容:<br>"foreach($worker as $b) echo "$b&l

50、t;br>" echo "是不是很好玩?"?>PHP解释结果(HTML输出)(右键单击该页面,在快捷菜单中单击“查看源文件”命令可看到)送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)【2-25】垃圾收集:变量的回收使用unset()回收变量(释放变量)PHP程序2-25送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?#垃圾收集:变量的回收使用unset()释放变量echo "从未对$name赋过值,这时:<br>"$s1=isset($name);/$s1为falsei

51、f($s1) echo "$name已存在,其值=$name<br>"else echo "$name不存在,其值=$name<br>"$name="Fred"$s1=isset($name);/$s1为trueif($s1) echo "$name已存在,其值=$name<br>"else echo "$name不存在,其值=$name<br>"echo "现在从内存中释放(删除)$name:<br>"unset(

52、$name);$s1=isset($name);/$s1为falseif($s1) echo "$name已存在,其值=$name<br>"else echo "$name不存在,其值=$name<br>"?>4. 表达式和操作符4.1隐式类型转换预备知识 数字间进行字符串拼接的规则;字符串转换数字后的数字值规则【2-26】数字间进行字符串拼接的规则:数字首先变为字串,然后再拼接PHP程序2-26送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?#数字减进行字符串连接的类型转换:数字都变

53、为字符串,再连接$a=3;$b=2.74;$c=$a.$b;echo "$c=$c"?>【2-27】字符串转换数字后的数字值规则假定以数字开始,该数字即为转换后的数字值;若未找到数字则转换后的数字值为0;若开头的数字包含一个句点或大写或小写的E,则转换后的数字值为浮点型PHP程序2-27送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?#字符串转成数字后的数字值规则$a="9 Lives"-1;/8(int)$b="3.14 Pies"*2;/6.28(float)$c="9 lives.&

54、quot;-1;/8(float)$d="1E3 Points of Light"+1;/1101echo "$a=$a<br>"echo "$b=$b<br>"echo "$c=$c<br>"echo "$d=$d<br>"?>4.2字符串连接操作符预备知识 字符串连接操作符;数字与字串连接时,数字先转换成字串【2-28】数字在与字符串连接时,先自动变成字符串PHP程序2-28送到用户浏览器解释后显示的结果(运行结果,显示在浏览器

55、页面中的结果)<?#数字在与字符串连接时,先自动变成字符串$n=5;$s="There are ".$n." ducks"echo "$s=$s"?>类似的,如2-29:【2-29】和2-28差不多的程序PHP程序2-29送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?#效果同程序2-28$n=5;$s="There are $n ducks"echo "$s=$s"?>4.3自增自减操作符预备知识 数字的自增自减(按数字顺序);字母的自

56、增自减(按字母顺序)【2-30】PHP程序2-30送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?#字母的自增自减运算echo "小写字母自增:<hr>"$a="a"while($a<="z") echo $a+; echo "<br>"echo "大写字母自增:<hr>" $a="A"while($a<="Z") echo $a+; echo "<br>&

57、quot;?> <font color=red>请编程验证:</font><br><table width="75%" border="1"> <tr> <td>字符串</td><td>字符串+</td> </tr><tr> <td>&quot;a&quot;</td><td>&quot;b&quot;</td> </tr>&l

58、t;tr> <td>&quot;z&quot;</td><td>&quot;a&quot;</td> </tr><tr> <td>&quot;spaz&quot;</td><td>&quot;spba&quot;</td> </tr> <tr> <td>&quot;K9&quot;</td><td>&quot;L0&

59、quot;</td> </tr> <tr> <td>&quot;42&quot;</td><td>&quot;43&quot;</td> </tr></table>(该图显示的是部分结果)4.4类型转换操作符预备知识 类型转换操作符;类型转换的临时性;类型转换的真正实现【2-31】类型转换的临时性PHP程序2-31送到用户浏览器解释后显示的结果(运行结果,显示在浏览器页面中的结果)<?#转换类型只是让别人临时以某种格式接收自己,并不影响自己的本来面貌$a="5"$b=(int)$a;/这时,$a仍为字符串型if(is_string($a) echo '$a仍是字符串型'?>【2-32】类型转换的真正实现PHP程序2-32送到用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论