1
第 9章 PHP语言简介
学习目标
? PHP的概念和特点 。
? PHP在两种操作系统上的安装方法 。
? PHP的语法规则 。
? PHP的基本语句 。
?运用 PHP语言编写简单程序。
2
第 9章 PHP语言简介
教学内容
9.1 PHP概述
9.2 PHP安装
9.3 PHP语法
9.4 PHP编程实例
本章小结
返回总目录
3
9.1 PHP概述 — 什么是 PHP
返回目录
随着因特网的普及,尤其是电子商务的发展壮大,网
站能否提供丰富的动态信息,能否与浏览网站的用户
进行信息交互,变得十分重要,由单纯的 HTML文件
构成的静态 Web站点已远远不能满足人们的需要,一
批动态主页语言应运而生,如 ASP,JSP,Perl,PHP。
其中,PHP以其特有的长处成为各种动态主页开发语
言中发展较快的技术。
PHP( Personal Home Page)是一种在 Web服务器端执
行的、嵌入 HTML文档的脚本语言。, 嵌入 HTML文档
的脚本语言, 的含义是:由 PHP产生的动态页面程序
嵌入到 HTML文档中,这些程序经过服务器端解释执
行后,连同 HTML文档一起发送给浏览器,从而组成
动态页面。
4
9.1 PHP概述 — PHP的特点
PHP之所以发展迅速,与它特有的一些优点是分不开的,主要有,
1.公开源代码,可以从 www.php.net和 www.zend.com网站免费下载。
2.语言风格类似 C语言,易学易用。
3.内嵌在 HTML主页里,与 HTML网页融合好,服务器解释脚本没有额外
负担,执行效率高。
4.能跨平台运行,支持多种 Web服务器和不同操作系统。
5.提供丰富的数据库接口,可以进行几乎所有流行数据库操作,
6.支持几乎所有网络操作和与网络相关的函数。
7.在服务器端执行,能充分利用服务器性能高、计算能力强的优势,程序在服务器
端执行完毕后将结果发送给浏览器,运行速度快。
8,PHP执行引擎将用户经常访问的 PHP程序常驻内存中,多次访问这段程序时无需重
新编译,大大节省运行时间。
返回目录
5
9.1 PHP概述 — 编写第一个 PHP程序
例,第一个 PHP程序 ( 文件名,hi.php)
<html>
<head>
<title>first program</title>
<body>
<?php echo,Hi,I am a PHP script!\n” ;?>
</body></html>
上例中, 只有, <?php echo,Hi,I am a PHP script!\n” ;?>”是 PHP代
码,
其余都是标准的 HTML标记, PHP的嵌入以, <?php”开始, 以,?>”结束, 可以
使用
Frontpage 或 Dreamwave编写主页文件, 存成扩展名为,,php”的文件, 放在
能
够执行 PHP的服务器的根目录中 ( 假设服务器名为 Host), 用户只要在浏览器
返回目录
6
9.2 PHP安装 — PHP在 Windows下的安装
以下我们安装 PHP4版本,使用 Win2000/XP,IIS5( Internet
Information Server)为平台,假定已经安装了 IIS5。安装步骤如下:
1.将下载的压缩文件 PHP4.ORC1-Win32.ZIP解压缩到目录 C:\PHP中。
2.把 C:\PHP中的 php.int-dist文件复制到 Win2000/XP的系统目,\WINDOWS
中,并改名为 php.ini,此时,不需要修改任何参数就可以运行。
3.把 C:\PHP4\Projects\php4\Release_TS_inline\php4ts.dll复
制到如下目录中,C:\WINDOWS\system32 。
4.点击, 开始, →, 运行,,输入 cmd,启动命令行方式。
5.在命令行上键入命令 mmc\windows\system32\compmgmt.msc,启
动计算机管理。
返回目录
7
9.2 PHP安装 — PHP在 Windows下的安装
6.在计算机管理窗口展开, 服务和应用程序, → 再展开
,Internet
信息服务, → 在, 默认 Web站点, 右击鼠标 → 选, 属性,,系统弹出
,默认
Web站点属性, 窗口。
7.在, 默认 Web站点属性, 窗口 →, ISAPI筛选器, 标签当前 →
单击
,添加, 按钮 → 弹出, 筛选器属性, 窗口 → 在, 筛选名称, 中输入
PHP → 在
,可执行文件, 中输
入,\PHP4\Projects\php4\sapi\isapi\Release_TS_inline\php4isap
i.dll → 单击, 确定, 。
8.在, 默认 Web站点属性, 窗口 →, 主目录, 标签当前 → 单击, 配置, 按
返回目录
8
9.2 PHP安装 — PHP在 Windows下的安装
面字串:
C:\PHP4\Projects\php4\sapi\isapi\Release_TS_inline\php4isapi
.dll → 单击, 确定, 。
9.返回命令行窗口 → 键入 net stop iisadmin命令终止 IIS服务 → 系统提
示, 是否中止相关服务, → 选择, 是, 。
10.输入, net start w3svc” 命令,重新启动 IIS服务。至此,配置结束。
说明:
要让 PHP支持数据库操作,应该在安装 PHP之前,首先安装一个数据库系统。
返回目录
9
9.2 PHP安装 — PHP在 UNIX操作系统下的安装
PHP在 UNIX系统上安装有两种方式:第一种是动态共享
Web Server方式,这种方式下 PHP将作为 Apache Web
Server的外部动态程序,用户应先安装 Apache,然后把
PHP作为动态程序添加到 Apache上。第二种是将 PHP作为
Apache的一个内部静态模块,这种方式下 Apache Web
Server与 PHP共同编译安装,使用时 Apache Web Server自
动解释 PHP脚本程序。 Apache静态执行 PHP比动态执行 PHP
效率高,相对稳定。所以,推荐使用静态模块方式安装
PHP。静态模块方式安装 PHP,方法如下:
返回目录
10
9.2 PHP安装 — PHP在 UNIX操作系统下的安装
1,选择安装目录, ( 设为,/usr/local/web) 将 Apache和 PHP的
打包压缩文件拷贝到这个目录下, 并将压缩文件解压, 拆包 。
Gunzip apache_1.3.x.tar.gz
Tar xvf apache_1.3.x.tar
Gunzip php-3.0.x.tar.gz
Tar xvf php-3.0.x.tar
2.解压拆包后出现 Apache和 PHP两个源代码目录,进入 Apache Web
Server源文件目录,对 Apache作初始配置:
cd apache_1.3.x (进入子目录)
/configure ( 编辑 configure)
--prefix=/usr/local/web (设置 /加入选项)
返回目录
11
9.2 PHP安装 — PHP在 UNIX操作系统下的安装
3,进入 PHP源文件目录, 配置安装 PHP
cd,./php-3.0.x ( 进入子目录 )
,/configure (编辑 configure)
--with-mysql=/usr/local/mysql\ (设置 /加入选项)
--with-oracle=/oracle/app/product/8.0.4
--with-apache=../apache_1.3.x --enable-track-vars
--with-config-file=/path
进行 PHP配置,告诉配置程序 PHP支持 Apache,MySQL和
Oracle。这里面最重要的是加入 --with-apache选项,而且
Apache源代码所在目录要正确。
返回目录
12
9.2 PHP安装 — PHP在 UNIX操作系统下的安装
4,编译
make
make install
设定完 PHP4后, 用 make命令进行编译, 然后进行安装, 此时, 会编译
出一个文件放置在 Apache源代码目录中 。
5,进入 Apache源文件目录, 将 PHP作为 Apache的静态模块, 编译并安
装 Apache。
cd,./apache_1.3.x
/configure
--prefix=/www \
--activat-module=src/modules/php4/libphp4.a
返回目录
13
9.2 PHP安装 — PHP在 UNIX操作系统下的安装
make
make install
配置 Apache。 在 Apache程序中加入 PHP4模块, 然后开始编译安装 Apache服
务器 。 如果此时 http服务已经启动, 应在安装前使用 killall httpd命
令将 http服务关闭掉 。
6, 进入 PHP 源文件目录, 将 PHP 启 动 参 数 文 件 php.ini 拷贝到
/usr/local/lib目录下 。
cd,./php-4.0.0
cd php.ini-dist/usr/local/lib/php.int
注意:若想让 PHP与某个数据库交互, 必须先将该数据库安装好, 并
确定在该主机上数据库系统可以顺利存取 。 PHP所需的外部模块, 都要先
设定好 。
返回目录
14
9.2 PHP安装 — PHP在 UNIX操作系统下的安装
7,在安装完毕的 Apache Web Server下有一个 conf目
录, 打开其中的 Apache的配置文件 httpd.conf 或
srm.conf, 在文件中加入:
AddType application/x-httpd-php.php
AddType application/x-httpd-php-source.phps
8,当一切设定好后, 重新启动 Apache Web Server:
www/bin/apachectl restart
至此, PHP已经可以使用了 。
返回目录
15
9.3 PHP语法 — PHP的数据类型
PHP支持很多数据类型, 如:常量, 变量, 数组, 标识符,
运算符等 。 作为一种脚本语言, PHP不是强类型语言, 对数据类
型方面的要求不很严格, 这一点与 C不同 。
1,整型 ( Integer)
整型又可以细分为十进制整型数据, 八进制整型数据 ( 以数
字 0作前缀 ) 和十六进制整型数据 ( 以 0x作前缀 ) 。
2,浮点型 ( Floating Point Number)
就是通常所说的实数, 带有小数的数据属于浮点型数据 。 在
32位操作系统中, 浮点型数据的有效范围是 1.7× 10-308到 1.7× 10308 。
返回目录
16
9.3 PHP语法 — PHP的数据类型
3,字符串型 ( string)
字符串是一组用西文单引号或西文双引号括起来的字符序列 。 在
PHP中使用单引号和双引号稍有不同, 最大不同是:使用双引号的字
符串中可以加入特殊的转义字符, 生成转义序列 。 PHP中的转义字
符见下表 。 转义字符 含义
\n 换行
\r 回车
\t 制表符
\$ 美元符号
\0nnn 任意一个八进制数
\0xnn 任意一个十六进制数
\\ 反斜杠字符
转义字符列表
返回目录
17
9.3 PHP语法 — PHP的数据类型
4,数组型
一个数组就是把一系列数字或字符串作为一个单元来处理 。 当读取一
个没有赋值的数组元素时, PHP返回, 空, 或零字符串 。 默认的数组下标
从 0
开始 。
5,对象型
Object被称为对象, PHP中的对象分为系统内置对象和自定义对象两种,
PHP中用类来描述一个对象, 因为有了类, 所以 PHP也可以算作是面向对象
的开发语言 。
6,布尔值型
Boolean被称为布尔值, 是 PHP中表示条件真假的变量, 布尔值的取值
只有两种可能:真 ( 非零或 true), 假 ( 零或 false)
返回目录
18
9.3 PHP语法 — PHP的变量
PHP应用程序在执行过程中能自动识别变量类型, 开发 PHP程序时
一般无需进行数据类型的预定义, 任何变量都可以拿来使用 。 为增加
程序的易读性, 建议在变量使用之前注释一下 。 另外, 所有的变量都
有作用域, 它体现了变量的可见性与生命周期 。
1,变量的命名
PHP中的变量都以 $开头, 后面跟变量的名字 。 PHP中变量名区分大
小写, $s1_a1与 $S1_A1代表不同的变量 。 PHP对变量名的长度没有限
制, 不同类型变量最好使用可区分的变量名 。 数组名一般使用名字的
复数 。
返回目录
19
9.3 PHP语法 — PHP的变量
2,变量的类型
PHP中变量有 6种类型:整型, 浮点型, 字符型, 数组型, 对
象型, 布尔值程序员可以强制将某个变量转换为指定类型, 强
制转换类型的操作是,cast,或使用转换函数,settype() 或
cast()。 由于 PHP的变量类型由赋值类型决定, 所以, 很多时候
我们并不清楚变量的类型, 要想知道变量类型可以调用 PHP中相
关函数, 主要有,gettype(),is_long(),is_double(),
is_array(),is_object()。
返回目录
20
9.3 PHP语法 — PHP的变量
3,变量的赋值
给一个变量赋值通常使用赋值运算符, 变量可以重复
赋值 。
4,数组
PHP使用 array() 函数或 list() 函数创建数组, 也可
以直接给某个数组元素赋值, 在赋值的同时创建数组 。 数
组下标可以是数字, 字符串 。 若不指定, PHP默认下标从 0
开始 。
返回目录
21
9.3 PHP语法 — PHP的运算符
1,算术运算符
算术运算 ( arithmetic operator) 符是用来处理四则运算
的符号, 在数字处理中几乎都会用到算术运算符 。 PHP算术运算
符见下表 。
运算符 运算意义
+ 加
- 减
* 乘
/ 除
% 取余数
++ 加 1
-- 减 1
PHP算术运算符列表
返回目录
22
9.3 PHP语法 — PHP的运算符
2,字符串运算符
字符串运算 ( string operator) 符只有一个, 为英文句
点,,”,其功能是将字符串连接起来, 合并成新字符串 。
3,赋值运算符 ( assignment operator)
赋值运算符的功能是让变量进行自我复合运算, 共有 7个运算
符, 见下表 。 运算符 运算意义.=
将右边的值给左边
+= 将右边的值加到左边
-= 将右边的值减到左边
*= 将左边的值乘以右边
/= 将左边的值除以右边
%= 将左边的值对右边取余数
= 将右边的字串加到左边
返回目录
23
9.3 PHP语法 — PHP的运算符
4.位运算符 ( bitwise operator)
位运算符进行二进制位的运算, 共 6个运算符, 见下表 。
运算符 运算意义
& 与
| 或
^ 异或
<< 所有比特位左移
>> 所有比特位右移
~ 取 1的补数
位运算符列表
返回目录
24
9.3 PHP语法 — PHP的运算符
5.逻辑运算 ( logical operator)
逻辑运算符用于测试值的真或假, 通常用在条件或循环中 。 见
下表 。 运算符 运算意义
< 小于
> 大于
<= 小于或等于
>= 大于或等于
== 等于
!= 不等于
&& 与
and 与
|| 或
or 或
xor 异或
! 非
逻辑运算列表
返回目录
25
9.3 PHP语法 — PHP的运算符
运算符 运算意义
$ 变量
& 变量的地址(加在变量前)
@ 不显示错误信息(加在函数前)
-> 对象(类)的方法或属性
=> 数组的元素值
,三元运算符
其他运算符列表例, 三元运算符举例
<?php
$a=(3>5)? (‘yes’), (‘no’);
echo $a.”<br>\n”;
>
若条件为真,表达式的值为,?, 后第一个式子的值,否则,表达式的
值
为,?, 后第二个式子的值。显然,上例中 $a中赋的值为字符串 no。
返回目录
26
9.3 PHP语法 — PHP的表达式
表达式是标识符和运算符的组合, 是由一个或多个操作符连接
起来的操作数, 用于计算一个值 。 最简单的表达式是数字 。 当多个
操作符相遇时, 按优先级的高低顺序执行, 若希望优先级低的运算
先执行, 可以用括号括起来 。
例基本表达式举例
-12 单个数字是最简单的表达式
$a=$b=5 把 5赋值给变量 $a和 $b
$str_name=?Tom? 把字串 Tom赋值给变量 $str_name
$arr_a=array(?one?,?tow?,?three?) 初始化一个数组 $arr_a
$int_total=++$int_number 变量 $int_number递增后赋值给变量
$int_total
返回目录
27
9.3 PHP语法 — PHP的基本语句
程序是由若干条语句组成,无论简单语句还是复杂语句,每一时刻
执行一句。语句通常由数值、变量、函数和关键字组成,其中,关键
字是 PHP保留给自己用的一些标识符。如,_FILE_,_LINE_,if、
else,elseif,while,do,for,break,continue,switch,case、
default,require,include,for,function等,关键字是 PHP语言
必不可少的,使用它们可以控制程序的执行和程序流程的走向。
PHP共有 6种基本语句类型:
1.非执行语句:不执行动作的语句。
2,执行语句:执行某一动作 。 例如调用一个函数 。
3,赋值语句:给变量赋值 。 例如,$int_a=5。
4,判断语句:判断条件并决定执行哪一个动作 。
返回目录
28
9.3 PHP语法 — PHP的基本语句
5,循环语句:重复执行一系列动作, 直到某条件为真或某条件为
假为止 。
6.跳转语句:无条件改变程序流程,转到程序中另一行继续执行。
下面,我们介绍 PHP的控制流程语句:判断、循环、跳转语句,
1,if 语句
在 if 语句中通过计算表达式得出真或假, 再根据真或假决定执
行哪一段程序 。 if 语句的语法结构有以下三种格式:
格式 1,if (表达式 ) { 语句序列 }
说明:当表达式的值为真时执行语句序列,否则,跳过该语句序列。
返回目录
29
9.3 PHP语法 — PHP的基本语句
格式 2,if (表达式 )
{ 语句序列 1 }
else
{ 语句序列 2 }
说明:当表达式的值为
真时执行语句序列 1,否
则,执行语句序列 2。两
个语句序列中只能有一
个序列被执行
格式 3,if (表达式 1)
{ 语句序列 1 }
elseif (表达式 2)
{ 语句序列 2 }
else
{ 语句序列 3 }
说明:当表达式 1的值为真时执行语句序列 1。
当表达式 1的值为假但表达式 2的值为真时,
执行语句序列 2。 当表达式 1和表达式 2的值
都为假时, 执行语句序列 3。 三个语句序列
中只能有一个序列被执行 。
返回目录
30
9.3 PHP语法 — PHP的基本语句
2,switch语句
在实际工作中常需要用多分支选择来判断多个条件值,这种情况用 switch
语句更容易更快速。 switch语句的语法结构如下:
switch(变量 )
{case 变量值 1:
语句序列 1; break;
case 变量值 2:
语句序列 2; break;
case 变量值 n:
语句序列 n; break;
default:
语句序列 n+1;}
返回目录
31
9.3 PHP语法 — PHP的基本语句
说明:
( 1) 在 switch语句中, 每一个需要检查的值都有相对
应的 case语句, 被检查的变量值可以是任意的数字和字串 。
( 2) 若 case语句中没有 break语句, 则 PHP将执行下一个
case语句, 继续向下, 直至找到 break语句为止 。
( 3) switch语句只能对一个变量进行判断 。
( 4) default语句给出 switch语句的默认分支,匹配任
何其他分支没有匹配的情况。
返回目录
32
9.3 PHP语法 — PHP的基本语句
3,for 语句
在 PHP中, for循环是最复杂的循环, 它的语法结构如下:
for (表达式 1 ; 表达式 2 ; 表达式 3) 语句序列
说明:
( 1) 表达式 1通常是赋值表达式, 循环开始时它将被无条件执
行且在整个循环中只执行一次 。
( 2) 表达式 2通常是条件表达式, 用于控制循环什么时候结束,
当它的值为真时继续循环, 当它的值为假时循环结束 。
( 3) 表达式 3用于修改循环变量的值, 每次执行完循环内部的
程序代码后, 表达式 3都被执行一次, 直至循环结束 。
返回目录
33
9.3 PHP语法 — PHP的基本语句
4,while 语句
while语句是 PHP循环中的一个简单形式, 它的格
式为:
while (条件 )
{ 语句序列; }
说明:每一次循环开始时检查条件, 若条件为真,
执行语句序列, 否则循环中止 。 若条件一开始就是假,
则循环中的语句一次也不会执行 。
返回目录
34
9.3 PHP语法 — PHP的基本语句
5,do… while 语句
do… while 语句与 while 语句很相似, 它们的不同在于 do… while
先执行后判断, 循环语句至少能执行一次 。 而 while先判断后执行,
循环语句有可能一次也得不到执行 。 它的格式为:
do { 语句序列 ; }
while (条件 )
6,跳转语句
PHP提供了两个帮助控制循环的语句,break和 continue。
break语句跳出当前循环使循环提前结束。 continue语句结束本
次循环跳到循环开始处,接着进行下一次循环判定。
返回目录
35
9.3 PHP语法 — PHP的基本语句
例,break语句举例
<?php
for ($int_x=0; $int_x<=10; $int_x++)
{ if ($int_x==3)
{break ;}
print $int_x ;
}
>
说明:当变量 $int_x的值为 3时循环中止,所以,程序只显
示 0,1,2三个数。
返回目录
36
9.3 PHP语法 — PHP的基本语句
例,continue语句举例
<?php
for ($int_x=0; $int_x<=10; $int_x++)
{if ($int_x==3)
{continue ;}
print $int_x;
}
>
说明:当 $int_x值为 3时循环回到开始处重新判断。程序显示除 3以
外的其他数。
返回目录
37
9.3 PHP语法 — PHP的函数
将常用的流程和变量等程序元素放在一起组成一个固定格式加以
调用,这个固定格式称为函数。 PHP提供了很多内部函数,任何时候
都可以方便地调用这些内部函数。 PHP还允许用户将一大段代码声明
为一个函数,以便在程序的其他地方调用它,这样声明的函数称为自
定义函数。
调用函数意味着停止程序当前行的执行,跳转到所调用的函数中
去,在函数执行完毕以后,重新回到程序调用函数的地方继续向下进
行,
虽然 PHP在很多地方对大小写要求严格,但在函数名称上却不区分
大小写,定义函数时用大写名字而调用函数时用小写名字是允许的。
返回目录
38
9.3 PHP语法 — PHP的函数
函数包括有返回值和无返回值两类 。
1,函数的声明
声明一个函数的语法格式如下:
function 函数名 (变量表 )
{ 语句序列 ; }
说明:
( 1) function是 PHP保留字, 声明函数时不可缺少, 表示自定义函数 。
( 2)函数命名规则与变量命名规则有所不同,函数名只能以英文字
母开头,不能以数字或下划线开头。第一个字母后面可以是英文字母、
数字或下划线,不能用其他符号,中文字符或空格都不行。
返回目录
39
9.3 PHP语法 — PHP的函数
( 3)跟在函数名后的, 变量表, 是一系列用逗号分隔的变量名,变量类型是
PHP支持的变量类型,变量可以预设初值或取默认值,预设初值的变量要放在没
有预设初值的变量后面,否则 PHP解析函数时将出错。
( 4) 语法格式中语句序列又称为函数体, 如果函数有返回值, 要在函数体中
使用 return语句将返回值传回 。
( 5)函数体中可以使用任何有效的 PHP代码,包括其他函数或类的名字。
2.函数的返回值
在 PHP中, 函数的返回值可有可无, 若有返回值, 则返回值通过 return语句
实现 。 返回值可以是任何类型, 包括列表和对象 。 函数体语句执行到 return时
结束函数的执行 。 另外, 函数不能同时返回多个值, 要返回多个值可以使用数
组实现 。
返回目录
40
9.3 PHP语法 — PHP的函数
3,函数的调用
调用格式,函数名 (参数表 )
说明:参数表是一系列用逗号分隔的变量或常量,外部信息通过
参数传给函数 。
例,声明函数和调用函数举例
<?php
function area ($r) 声明函数
{ return (3.14*$r*$r); }
$s=area(5); 调用函数
echo,This area is $s,<br>”; 输出结果
>
说明:程序计算并输出了以 5为半径的圆面积。
返回目录
41
9.3 PHP语法 — PHP的函数
4,向函数传递参数
向函数传递参数有三种方法:参数以传值方式传递给函数, 参数按引
用方式传递给函数, 将数组作为函数的参数 。
( 1)默认情况下参数以传值方式传递给函数,如果接受值的函数变量
在函数体中改变时,在函数调用中得不到体现。
例, 以传值方式向函数传递参数
<?php
function one ($x)
{ $x++; return($x); }
$a=10;
one($a);
echo,a=$a <br>”;
>
说明:程序结果显示 a=10,虽然 $x的值已经
改变为 11,但与 $a的值无关, 因为是以传值
方式向函数传递参数 。
返回目录
42
9.3 PHP语法 — PHP的函数
( 2)如果希望函数内部的语句能修改其参数,则应该将参数按引用方式传
递给函数,使用变量引用作参数时,提供的是存放变量的内存地址。此时,
在所调用函数的参数前面加一个 &号。
例,按引用方式向函数传递参数
<?php
function one (&$x)
{ $x++; return($x); }
$a=10;
one($a);
echo,a=$a <br>”;
>
说明:程序结果显示 a=11,因为是
按引用方式向函数传递参数, 所以
$x接受的是 $a的地址, $x值的改变
就相当于 $a的值发生了改变 。
返回目录
43
9.3 PHP语法 — PHP的函数
( 3) 将数组作为函数的参数
例,将数组作为函数的参数
<?php
function first ($arr_x)
{ return ($arr_x[0]); }
$a=first (array(8));
echo,a=$a <br>”;
>
说明:上面程序显示数组的第一个元素。
返回目录
44
9.4 PHP编程实例 — 访问计数器设计两例
访问计数器通常是一个网站不可缺少的组成部分,它能使系
统管理员清楚自己网站的访问人数,反映出该网站人气值的高
低。 PHP没有特殊的访问计数器函数,所以设计一个计数器具有
一定实用性。
例,访问计数器举例 1
下面的计数器将某网页被浏览的次数保存在一个文件中,并
能根据浏览情况实时更新浏览次数,在新访问者打开页面时加
以显示。(注:下面代码前的序号是为写说明而添加,不是程
序内容)
返回目录
45
9.4 PHP编程实例 — 访问计数器设计两例
<html>
<head> <title>访问计数器 </title> </head>
<body>
<?php
1 file_count( );
2 function file_count( )
{
3 if (!file_exists(“/tmp?count.txt”))
{exec(“echo 0>/tmp/count.txt”) ; }
4 $f_open=fopen(“/tmp/count.txt”,“r+”) ;
5 $f_size=filesize(“/tmp/count.txt”) ;
返回目录
46
9.4 PHP编程实例 — 访问计数器设计两例
6 $count=fgets($f_open,$f_size+1) ;
7 $count=$count+1;
8 fseek($f_open,0);
9 fputs($f_open,$count);
10 fclose($f_open);
11 echo,本页已有,,$count.”人浏览, ;
12 return $count;
}
>
</body>
</html>
返回目录
47
9.4 PHP编程实例 — 访问计数器设计两例
说明:
( 1) 调用 file_count() 函数 。
( 2) 声明了一个没有自变量的函数 file_count()。
( 3) 判断 /tmp目录下文本文件 count.txt是否不存在, 若不存在则进入 if
语句内部, 用 exec() 函数建立 count.txt文件, 并把数字 0写入文件, 然后退
出判断继续向下 。 若存在该文件, 则跳过 if语句直接向下 。 count.txt用来记
录访问数 。
( 4) 以可读写方式打开 count.txt文件, 并把文件当前指针赋给变量 $f_open。
( 5) 将 count.txt文件的长度赋给变量 $f_size。
( 6) 将 count.txt文件的当前值 ( 已访问人数 ) 取出赋给变量 $count。
( 7) 将变量 $count的当前值加 1后赋给变量 $count。
返回目录
48
9.4 PHP编程实例 — 访问计数器设计两例
( 8) 文件指针回到文件开始处 。
( 9) 将变量 $count的当前值写入 count.txt文件覆盖原有值 。
( 10) 关闭 count.txt文件 。
( 11) 显示浏览人数 。
( 12)返回变量 $count的值。
例,访问计数器举例 2
基于数据库的计数器比起基于文件的计数器应用更广泛,下面介绍
在 Windows平台下基于数据库的计数器,采用 SQLServer联接数据库。
在编写程序之前先用 SQL语句建立数据库 test和数据表 table_count,
给表建立两个字段,count和 id,插 入一条记录,使 count为 0,id为 1,
并设置它们不能为空。
返回目录
49
9.4 PHP编程实例 — 访问计数器设计两例
注,下面代码前的序号是为写说明而添加, 不是程序内容,
<html>
<head> <title>访问计数器 </title> </head>
<body>
<?php
function mssql_count()
{
1 dl (?php_mssql.dll);
2 $conn=mssql_connect(“localhost”,“www”,“something”);
3 mssql_select_db(“test” );
返回目录
50
9.4 PHP编程实例 — 访问计数器设计两例
4 $sql=”select ﹡ from table_count,;
5 $result=mssql_query($sql,$conn);
6 $count=mssql_result($result,0,count );
7 $sql=”updata table_count set count=”,($count+1),,while id=1”;
8 mssql_query($sql,$conn);
9 mssql_close($conn);
10 return $count+1;
}
>
说明:执行过程如下 。
( 1) 用函数 dll( )加载 Microsoft Server支持数据库, 只有这样
才能使用 Microsoft SQL Server的相关函数 。
返回目录
51
9.4 PHP编程实例 — 访问计数器设计两例
( 2) 使用 mssql_connect()函数连接数据库服务器, 其中
localhost代表本地主机,www代表用户名,something为密码 。
( 3) 指明所要连接的数据库是 test。
( 4) $sql是一条查询数据表 table_count的 SQL语句 。
( 5) 将结果存入变量 $result中 。
( 6) 将查询结果 $result中的 count值取出给 $count。
( 7) 一条 SQL语句, 将 count字段的值用 $count+1替代 。
( 8) 将替代的结果存入表 。
( 9) 关闭与 Microsoft SQL Server数据库的连接 。
( 10) 返回给用户当前访问数 。
返回目录
52
9.4 PHP编程实例 — PHP程序编制
PHP程序的编写可以用任意一种文本编辑器, PHP内建
调试器,当程序编好后在浏览器端就能看到程序的执行调
试信息,即见即改。
程序中常见错误有:
( 1) 语句结尾没有加分号 。
( 2) 变量前面没有加变量符 $。
( 3) 大括号不匹配, 没有成对出现 。
( 4) 中英文标点错误 。 PHP程序中使用的标点符号一律是
英文符号 。
返回目录
53
9.4 PHP编程实例 — PHP程序编制
( 5) 变量作用域错误 。 变量作用域是指变量在程序
中哪一部分可用 。 PHP只认可两种作用域:页面作用域
(适用于整个 Web页面 ) 和函数作用域 ( 适用于单个函
数 ) 。
通常 PHP变量只在它们定义的作用域范围内才可以使用 。
在函数内部定义页面作用域变量的格式为,global 变量名 ;
定义后的变量相当于一个全局变量 。
( 6)逻辑错误。当发生逻辑错误时,程序表面上执行
正常,但执行结果却与设想的不一样,这样的错误解决
起来有些难度,必须积累大量的实践经验。所以,编写
程序时要反复读几遍,理顺各种关系,尽量避免逻辑错
误发生。
返回目录
54
本 章 小 结
? PHP概述
– PHP( Personal Home Page) 是一种在 Web服务器端执行的,
嵌入 HTML文档的脚本语言 。
– 提供丰富的数据库接口, 可以进行几乎所有流行数据库操作 。
? PHP安装
– PHP在 Windows下的安装
– PHP在 Unix操作系统下的安装
? PHP语法
– PHP支持很多数据类型, 如:常量, 变量, 数组, 标识符,
运算符等 。
– PHP中的变量都以 $开头, 后面跟变量的名字 。 PHP中变量名
区分大小写 。
返回目录
55
本 章 小 结
? PHP语法
– PHP中变量有 6种类型:整型, 浮点型, 字符型,
数组型, 对象型, 布尔值 。
– PHP的运算符有算术, 字符串, 赋值, 位, 逻辑
运算和其它运算符 。
– 表达式是标识符和运算符的组合, 是由一个或多
个操作符连接起来的操作数, 用于计算一个值 。
– 语句通常由数值, 变量, 函数和关键字组成 。
– 将常用的流程和变量等程序元素放在一起组成一
个固定格式加以调用, 这个固定格式称为函数 。
返回目录
第 9章 PHP语言简介
学习目标
? PHP的概念和特点 。
? PHP在两种操作系统上的安装方法 。
? PHP的语法规则 。
? PHP的基本语句 。
?运用 PHP语言编写简单程序。
2
第 9章 PHP语言简介
教学内容
9.1 PHP概述
9.2 PHP安装
9.3 PHP语法
9.4 PHP编程实例
本章小结
返回总目录
3
9.1 PHP概述 — 什么是 PHP
返回目录
随着因特网的普及,尤其是电子商务的发展壮大,网
站能否提供丰富的动态信息,能否与浏览网站的用户
进行信息交互,变得十分重要,由单纯的 HTML文件
构成的静态 Web站点已远远不能满足人们的需要,一
批动态主页语言应运而生,如 ASP,JSP,Perl,PHP。
其中,PHP以其特有的长处成为各种动态主页开发语
言中发展较快的技术。
PHP( Personal Home Page)是一种在 Web服务器端执
行的、嵌入 HTML文档的脚本语言。, 嵌入 HTML文档
的脚本语言, 的含义是:由 PHP产生的动态页面程序
嵌入到 HTML文档中,这些程序经过服务器端解释执
行后,连同 HTML文档一起发送给浏览器,从而组成
动态页面。
4
9.1 PHP概述 — PHP的特点
PHP之所以发展迅速,与它特有的一些优点是分不开的,主要有,
1.公开源代码,可以从 www.php.net和 www.zend.com网站免费下载。
2.语言风格类似 C语言,易学易用。
3.内嵌在 HTML主页里,与 HTML网页融合好,服务器解释脚本没有额外
负担,执行效率高。
4.能跨平台运行,支持多种 Web服务器和不同操作系统。
5.提供丰富的数据库接口,可以进行几乎所有流行数据库操作,
6.支持几乎所有网络操作和与网络相关的函数。
7.在服务器端执行,能充分利用服务器性能高、计算能力强的优势,程序在服务器
端执行完毕后将结果发送给浏览器,运行速度快。
8,PHP执行引擎将用户经常访问的 PHP程序常驻内存中,多次访问这段程序时无需重
新编译,大大节省运行时间。
返回目录
5
9.1 PHP概述 — 编写第一个 PHP程序
例,第一个 PHP程序 ( 文件名,hi.php)
<html>
<head>
<title>first program</title>
<body>
<?php echo,Hi,I am a PHP script!\n” ;?>
</body></html>
上例中, 只有, <?php echo,Hi,I am a PHP script!\n” ;?>”是 PHP代
码,
其余都是标准的 HTML标记, PHP的嵌入以, <?php”开始, 以,?>”结束, 可以
使用
Frontpage 或 Dreamwave编写主页文件, 存成扩展名为,,php”的文件, 放在
能
够执行 PHP的服务器的根目录中 ( 假设服务器名为 Host), 用户只要在浏览器
返回目录
6
9.2 PHP安装 — PHP在 Windows下的安装
以下我们安装 PHP4版本,使用 Win2000/XP,IIS5( Internet
Information Server)为平台,假定已经安装了 IIS5。安装步骤如下:
1.将下载的压缩文件 PHP4.ORC1-Win32.ZIP解压缩到目录 C:\PHP中。
2.把 C:\PHP中的 php.int-dist文件复制到 Win2000/XP的系统目,\WINDOWS
中,并改名为 php.ini,此时,不需要修改任何参数就可以运行。
3.把 C:\PHP4\Projects\php4\Release_TS_inline\php4ts.dll复
制到如下目录中,C:\WINDOWS\system32 。
4.点击, 开始, →, 运行,,输入 cmd,启动命令行方式。
5.在命令行上键入命令 mmc\windows\system32\compmgmt.msc,启
动计算机管理。
返回目录
7
9.2 PHP安装 — PHP在 Windows下的安装
6.在计算机管理窗口展开, 服务和应用程序, → 再展开
,Internet
信息服务, → 在, 默认 Web站点, 右击鼠标 → 选, 属性,,系统弹出
,默认
Web站点属性, 窗口。
7.在, 默认 Web站点属性, 窗口 →, ISAPI筛选器, 标签当前 →
单击
,添加, 按钮 → 弹出, 筛选器属性, 窗口 → 在, 筛选名称, 中输入
PHP → 在
,可执行文件, 中输
入,\PHP4\Projects\php4\sapi\isapi\Release_TS_inline\php4isap
i.dll → 单击, 确定, 。
8.在, 默认 Web站点属性, 窗口 →, 主目录, 标签当前 → 单击, 配置, 按
返回目录
8
9.2 PHP安装 — PHP在 Windows下的安装
面字串:
C:\PHP4\Projects\php4\sapi\isapi\Release_TS_inline\php4isapi
.dll → 单击, 确定, 。
9.返回命令行窗口 → 键入 net stop iisadmin命令终止 IIS服务 → 系统提
示, 是否中止相关服务, → 选择, 是, 。
10.输入, net start w3svc” 命令,重新启动 IIS服务。至此,配置结束。
说明:
要让 PHP支持数据库操作,应该在安装 PHP之前,首先安装一个数据库系统。
返回目录
9
9.2 PHP安装 — PHP在 UNIX操作系统下的安装
PHP在 UNIX系统上安装有两种方式:第一种是动态共享
Web Server方式,这种方式下 PHP将作为 Apache Web
Server的外部动态程序,用户应先安装 Apache,然后把
PHP作为动态程序添加到 Apache上。第二种是将 PHP作为
Apache的一个内部静态模块,这种方式下 Apache Web
Server与 PHP共同编译安装,使用时 Apache Web Server自
动解释 PHP脚本程序。 Apache静态执行 PHP比动态执行 PHP
效率高,相对稳定。所以,推荐使用静态模块方式安装
PHP。静态模块方式安装 PHP,方法如下:
返回目录
10
9.2 PHP安装 — PHP在 UNIX操作系统下的安装
1,选择安装目录, ( 设为,/usr/local/web) 将 Apache和 PHP的
打包压缩文件拷贝到这个目录下, 并将压缩文件解压, 拆包 。
Gunzip apache_1.3.x.tar.gz
Tar xvf apache_1.3.x.tar
Gunzip php-3.0.x.tar.gz
Tar xvf php-3.0.x.tar
2.解压拆包后出现 Apache和 PHP两个源代码目录,进入 Apache Web
Server源文件目录,对 Apache作初始配置:
cd apache_1.3.x (进入子目录)
/configure ( 编辑 configure)
--prefix=/usr/local/web (设置 /加入选项)
返回目录
11
9.2 PHP安装 — PHP在 UNIX操作系统下的安装
3,进入 PHP源文件目录, 配置安装 PHP
cd,./php-3.0.x ( 进入子目录 )
,/configure (编辑 configure)
--with-mysql=/usr/local/mysql\ (设置 /加入选项)
--with-oracle=/oracle/app/product/8.0.4
--with-apache=../apache_1.3.x --enable-track-vars
--with-config-file=/path
进行 PHP配置,告诉配置程序 PHP支持 Apache,MySQL和
Oracle。这里面最重要的是加入 --with-apache选项,而且
Apache源代码所在目录要正确。
返回目录
12
9.2 PHP安装 — PHP在 UNIX操作系统下的安装
4,编译
make
make install
设定完 PHP4后, 用 make命令进行编译, 然后进行安装, 此时, 会编译
出一个文件放置在 Apache源代码目录中 。
5,进入 Apache源文件目录, 将 PHP作为 Apache的静态模块, 编译并安
装 Apache。
cd,./apache_1.3.x
/configure
--prefix=/www \
--activat-module=src/modules/php4/libphp4.a
返回目录
13
9.2 PHP安装 — PHP在 UNIX操作系统下的安装
make
make install
配置 Apache。 在 Apache程序中加入 PHP4模块, 然后开始编译安装 Apache服
务器 。 如果此时 http服务已经启动, 应在安装前使用 killall httpd命
令将 http服务关闭掉 。
6, 进入 PHP 源文件目录, 将 PHP 启 动 参 数 文 件 php.ini 拷贝到
/usr/local/lib目录下 。
cd,./php-4.0.0
cd php.ini-dist/usr/local/lib/php.int
注意:若想让 PHP与某个数据库交互, 必须先将该数据库安装好, 并
确定在该主机上数据库系统可以顺利存取 。 PHP所需的外部模块, 都要先
设定好 。
返回目录
14
9.2 PHP安装 — PHP在 UNIX操作系统下的安装
7,在安装完毕的 Apache Web Server下有一个 conf目
录, 打开其中的 Apache的配置文件 httpd.conf 或
srm.conf, 在文件中加入:
AddType application/x-httpd-php.php
AddType application/x-httpd-php-source.phps
8,当一切设定好后, 重新启动 Apache Web Server:
www/bin/apachectl restart
至此, PHP已经可以使用了 。
返回目录
15
9.3 PHP语法 — PHP的数据类型
PHP支持很多数据类型, 如:常量, 变量, 数组, 标识符,
运算符等 。 作为一种脚本语言, PHP不是强类型语言, 对数据类
型方面的要求不很严格, 这一点与 C不同 。
1,整型 ( Integer)
整型又可以细分为十进制整型数据, 八进制整型数据 ( 以数
字 0作前缀 ) 和十六进制整型数据 ( 以 0x作前缀 ) 。
2,浮点型 ( Floating Point Number)
就是通常所说的实数, 带有小数的数据属于浮点型数据 。 在
32位操作系统中, 浮点型数据的有效范围是 1.7× 10-308到 1.7× 10308 。
返回目录
16
9.3 PHP语法 — PHP的数据类型
3,字符串型 ( string)
字符串是一组用西文单引号或西文双引号括起来的字符序列 。 在
PHP中使用单引号和双引号稍有不同, 最大不同是:使用双引号的字
符串中可以加入特殊的转义字符, 生成转义序列 。 PHP中的转义字
符见下表 。 转义字符 含义
\n 换行
\r 回车
\t 制表符
\$ 美元符号
\0nnn 任意一个八进制数
\0xnn 任意一个十六进制数
\\ 反斜杠字符
转义字符列表
返回目录
17
9.3 PHP语法 — PHP的数据类型
4,数组型
一个数组就是把一系列数字或字符串作为一个单元来处理 。 当读取一
个没有赋值的数组元素时, PHP返回, 空, 或零字符串 。 默认的数组下标
从 0
开始 。
5,对象型
Object被称为对象, PHP中的对象分为系统内置对象和自定义对象两种,
PHP中用类来描述一个对象, 因为有了类, 所以 PHP也可以算作是面向对象
的开发语言 。
6,布尔值型
Boolean被称为布尔值, 是 PHP中表示条件真假的变量, 布尔值的取值
只有两种可能:真 ( 非零或 true), 假 ( 零或 false)
返回目录
18
9.3 PHP语法 — PHP的变量
PHP应用程序在执行过程中能自动识别变量类型, 开发 PHP程序时
一般无需进行数据类型的预定义, 任何变量都可以拿来使用 。 为增加
程序的易读性, 建议在变量使用之前注释一下 。 另外, 所有的变量都
有作用域, 它体现了变量的可见性与生命周期 。
1,变量的命名
PHP中的变量都以 $开头, 后面跟变量的名字 。 PHP中变量名区分大
小写, $s1_a1与 $S1_A1代表不同的变量 。 PHP对变量名的长度没有限
制, 不同类型变量最好使用可区分的变量名 。 数组名一般使用名字的
复数 。
返回目录
19
9.3 PHP语法 — PHP的变量
2,变量的类型
PHP中变量有 6种类型:整型, 浮点型, 字符型, 数组型, 对
象型, 布尔值程序员可以强制将某个变量转换为指定类型, 强
制转换类型的操作是,cast,或使用转换函数,settype() 或
cast()。 由于 PHP的变量类型由赋值类型决定, 所以, 很多时候
我们并不清楚变量的类型, 要想知道变量类型可以调用 PHP中相
关函数, 主要有,gettype(),is_long(),is_double(),
is_array(),is_object()。
返回目录
20
9.3 PHP语法 — PHP的变量
3,变量的赋值
给一个变量赋值通常使用赋值运算符, 变量可以重复
赋值 。
4,数组
PHP使用 array() 函数或 list() 函数创建数组, 也可
以直接给某个数组元素赋值, 在赋值的同时创建数组 。 数
组下标可以是数字, 字符串 。 若不指定, PHP默认下标从 0
开始 。
返回目录
21
9.3 PHP语法 — PHP的运算符
1,算术运算符
算术运算 ( arithmetic operator) 符是用来处理四则运算
的符号, 在数字处理中几乎都会用到算术运算符 。 PHP算术运算
符见下表 。
运算符 运算意义
+ 加
- 减
* 乘
/ 除
% 取余数
++ 加 1
-- 减 1
PHP算术运算符列表
返回目录
22
9.3 PHP语法 — PHP的运算符
2,字符串运算符
字符串运算 ( string operator) 符只有一个, 为英文句
点,,”,其功能是将字符串连接起来, 合并成新字符串 。
3,赋值运算符 ( assignment operator)
赋值运算符的功能是让变量进行自我复合运算, 共有 7个运算
符, 见下表 。 运算符 运算意义.=
将右边的值给左边
+= 将右边的值加到左边
-= 将右边的值减到左边
*= 将左边的值乘以右边
/= 将左边的值除以右边
%= 将左边的值对右边取余数
= 将右边的字串加到左边
返回目录
23
9.3 PHP语法 — PHP的运算符
4.位运算符 ( bitwise operator)
位运算符进行二进制位的运算, 共 6个运算符, 见下表 。
运算符 运算意义
& 与
| 或
^ 异或
<< 所有比特位左移
>> 所有比特位右移
~ 取 1的补数
位运算符列表
返回目录
24
9.3 PHP语法 — PHP的运算符
5.逻辑运算 ( logical operator)
逻辑运算符用于测试值的真或假, 通常用在条件或循环中 。 见
下表 。 运算符 运算意义
< 小于
> 大于
<= 小于或等于
>= 大于或等于
== 等于
!= 不等于
&& 与
and 与
|| 或
or 或
xor 异或
! 非
逻辑运算列表
返回目录
25
9.3 PHP语法 — PHP的运算符
运算符 运算意义
$ 变量
& 变量的地址(加在变量前)
@ 不显示错误信息(加在函数前)
-> 对象(类)的方法或属性
=> 数组的元素值
,三元运算符
其他运算符列表例, 三元运算符举例
<?php
$a=(3>5)? (‘yes’), (‘no’);
echo $a.”<br>\n”;
>
若条件为真,表达式的值为,?, 后第一个式子的值,否则,表达式的
值
为,?, 后第二个式子的值。显然,上例中 $a中赋的值为字符串 no。
返回目录
26
9.3 PHP语法 — PHP的表达式
表达式是标识符和运算符的组合, 是由一个或多个操作符连接
起来的操作数, 用于计算一个值 。 最简单的表达式是数字 。 当多个
操作符相遇时, 按优先级的高低顺序执行, 若希望优先级低的运算
先执行, 可以用括号括起来 。
例基本表达式举例
-12 单个数字是最简单的表达式
$a=$b=5 把 5赋值给变量 $a和 $b
$str_name=?Tom? 把字串 Tom赋值给变量 $str_name
$arr_a=array(?one?,?tow?,?three?) 初始化一个数组 $arr_a
$int_total=++$int_number 变量 $int_number递增后赋值给变量
$int_total
返回目录
27
9.3 PHP语法 — PHP的基本语句
程序是由若干条语句组成,无论简单语句还是复杂语句,每一时刻
执行一句。语句通常由数值、变量、函数和关键字组成,其中,关键
字是 PHP保留给自己用的一些标识符。如,_FILE_,_LINE_,if、
else,elseif,while,do,for,break,continue,switch,case、
default,require,include,for,function等,关键字是 PHP语言
必不可少的,使用它们可以控制程序的执行和程序流程的走向。
PHP共有 6种基本语句类型:
1.非执行语句:不执行动作的语句。
2,执行语句:执行某一动作 。 例如调用一个函数 。
3,赋值语句:给变量赋值 。 例如,$int_a=5。
4,判断语句:判断条件并决定执行哪一个动作 。
返回目录
28
9.3 PHP语法 — PHP的基本语句
5,循环语句:重复执行一系列动作, 直到某条件为真或某条件为
假为止 。
6.跳转语句:无条件改变程序流程,转到程序中另一行继续执行。
下面,我们介绍 PHP的控制流程语句:判断、循环、跳转语句,
1,if 语句
在 if 语句中通过计算表达式得出真或假, 再根据真或假决定执
行哪一段程序 。 if 语句的语法结构有以下三种格式:
格式 1,if (表达式 ) { 语句序列 }
说明:当表达式的值为真时执行语句序列,否则,跳过该语句序列。
返回目录
29
9.3 PHP语法 — PHP的基本语句
格式 2,if (表达式 )
{ 语句序列 1 }
else
{ 语句序列 2 }
说明:当表达式的值为
真时执行语句序列 1,否
则,执行语句序列 2。两
个语句序列中只能有一
个序列被执行
格式 3,if (表达式 1)
{ 语句序列 1 }
elseif (表达式 2)
{ 语句序列 2 }
else
{ 语句序列 3 }
说明:当表达式 1的值为真时执行语句序列 1。
当表达式 1的值为假但表达式 2的值为真时,
执行语句序列 2。 当表达式 1和表达式 2的值
都为假时, 执行语句序列 3。 三个语句序列
中只能有一个序列被执行 。
返回目录
30
9.3 PHP语法 — PHP的基本语句
2,switch语句
在实际工作中常需要用多分支选择来判断多个条件值,这种情况用 switch
语句更容易更快速。 switch语句的语法结构如下:
switch(变量 )
{case 变量值 1:
语句序列 1; break;
case 变量值 2:
语句序列 2; break;
case 变量值 n:
语句序列 n; break;
default:
语句序列 n+1;}
返回目录
31
9.3 PHP语法 — PHP的基本语句
说明:
( 1) 在 switch语句中, 每一个需要检查的值都有相对
应的 case语句, 被检查的变量值可以是任意的数字和字串 。
( 2) 若 case语句中没有 break语句, 则 PHP将执行下一个
case语句, 继续向下, 直至找到 break语句为止 。
( 3) switch语句只能对一个变量进行判断 。
( 4) default语句给出 switch语句的默认分支,匹配任
何其他分支没有匹配的情况。
返回目录
32
9.3 PHP语法 — PHP的基本语句
3,for 语句
在 PHP中, for循环是最复杂的循环, 它的语法结构如下:
for (表达式 1 ; 表达式 2 ; 表达式 3) 语句序列
说明:
( 1) 表达式 1通常是赋值表达式, 循环开始时它将被无条件执
行且在整个循环中只执行一次 。
( 2) 表达式 2通常是条件表达式, 用于控制循环什么时候结束,
当它的值为真时继续循环, 当它的值为假时循环结束 。
( 3) 表达式 3用于修改循环变量的值, 每次执行完循环内部的
程序代码后, 表达式 3都被执行一次, 直至循环结束 。
返回目录
33
9.3 PHP语法 — PHP的基本语句
4,while 语句
while语句是 PHP循环中的一个简单形式, 它的格
式为:
while (条件 )
{ 语句序列; }
说明:每一次循环开始时检查条件, 若条件为真,
执行语句序列, 否则循环中止 。 若条件一开始就是假,
则循环中的语句一次也不会执行 。
返回目录
34
9.3 PHP语法 — PHP的基本语句
5,do… while 语句
do… while 语句与 while 语句很相似, 它们的不同在于 do… while
先执行后判断, 循环语句至少能执行一次 。 而 while先判断后执行,
循环语句有可能一次也得不到执行 。 它的格式为:
do { 语句序列 ; }
while (条件 )
6,跳转语句
PHP提供了两个帮助控制循环的语句,break和 continue。
break语句跳出当前循环使循环提前结束。 continue语句结束本
次循环跳到循环开始处,接着进行下一次循环判定。
返回目录
35
9.3 PHP语法 — PHP的基本语句
例,break语句举例
<?php
for ($int_x=0; $int_x<=10; $int_x++)
{ if ($int_x==3)
{break ;}
print $int_x ;
}
>
说明:当变量 $int_x的值为 3时循环中止,所以,程序只显
示 0,1,2三个数。
返回目录
36
9.3 PHP语法 — PHP的基本语句
例,continue语句举例
<?php
for ($int_x=0; $int_x<=10; $int_x++)
{if ($int_x==3)
{continue ;}
print $int_x;
}
>
说明:当 $int_x值为 3时循环回到开始处重新判断。程序显示除 3以
外的其他数。
返回目录
37
9.3 PHP语法 — PHP的函数
将常用的流程和变量等程序元素放在一起组成一个固定格式加以
调用,这个固定格式称为函数。 PHP提供了很多内部函数,任何时候
都可以方便地调用这些内部函数。 PHP还允许用户将一大段代码声明
为一个函数,以便在程序的其他地方调用它,这样声明的函数称为自
定义函数。
调用函数意味着停止程序当前行的执行,跳转到所调用的函数中
去,在函数执行完毕以后,重新回到程序调用函数的地方继续向下进
行,
虽然 PHP在很多地方对大小写要求严格,但在函数名称上却不区分
大小写,定义函数时用大写名字而调用函数时用小写名字是允许的。
返回目录
38
9.3 PHP语法 — PHP的函数
函数包括有返回值和无返回值两类 。
1,函数的声明
声明一个函数的语法格式如下:
function 函数名 (变量表 )
{ 语句序列 ; }
说明:
( 1) function是 PHP保留字, 声明函数时不可缺少, 表示自定义函数 。
( 2)函数命名规则与变量命名规则有所不同,函数名只能以英文字
母开头,不能以数字或下划线开头。第一个字母后面可以是英文字母、
数字或下划线,不能用其他符号,中文字符或空格都不行。
返回目录
39
9.3 PHP语法 — PHP的函数
( 3)跟在函数名后的, 变量表, 是一系列用逗号分隔的变量名,变量类型是
PHP支持的变量类型,变量可以预设初值或取默认值,预设初值的变量要放在没
有预设初值的变量后面,否则 PHP解析函数时将出错。
( 4) 语法格式中语句序列又称为函数体, 如果函数有返回值, 要在函数体中
使用 return语句将返回值传回 。
( 5)函数体中可以使用任何有效的 PHP代码,包括其他函数或类的名字。
2.函数的返回值
在 PHP中, 函数的返回值可有可无, 若有返回值, 则返回值通过 return语句
实现 。 返回值可以是任何类型, 包括列表和对象 。 函数体语句执行到 return时
结束函数的执行 。 另外, 函数不能同时返回多个值, 要返回多个值可以使用数
组实现 。
返回目录
40
9.3 PHP语法 — PHP的函数
3,函数的调用
调用格式,函数名 (参数表 )
说明:参数表是一系列用逗号分隔的变量或常量,外部信息通过
参数传给函数 。
例,声明函数和调用函数举例
<?php
function area ($r) 声明函数
{ return (3.14*$r*$r); }
$s=area(5); 调用函数
echo,This area is $s,<br>”; 输出结果
>
说明:程序计算并输出了以 5为半径的圆面积。
返回目录
41
9.3 PHP语法 — PHP的函数
4,向函数传递参数
向函数传递参数有三种方法:参数以传值方式传递给函数, 参数按引
用方式传递给函数, 将数组作为函数的参数 。
( 1)默认情况下参数以传值方式传递给函数,如果接受值的函数变量
在函数体中改变时,在函数调用中得不到体现。
例, 以传值方式向函数传递参数
<?php
function one ($x)
{ $x++; return($x); }
$a=10;
one($a);
echo,a=$a <br>”;
>
说明:程序结果显示 a=10,虽然 $x的值已经
改变为 11,但与 $a的值无关, 因为是以传值
方式向函数传递参数 。
返回目录
42
9.3 PHP语法 — PHP的函数
( 2)如果希望函数内部的语句能修改其参数,则应该将参数按引用方式传
递给函数,使用变量引用作参数时,提供的是存放变量的内存地址。此时,
在所调用函数的参数前面加一个 &号。
例,按引用方式向函数传递参数
<?php
function one (&$x)
{ $x++; return($x); }
$a=10;
one($a);
echo,a=$a <br>”;
>
说明:程序结果显示 a=11,因为是
按引用方式向函数传递参数, 所以
$x接受的是 $a的地址, $x值的改变
就相当于 $a的值发生了改变 。
返回目录
43
9.3 PHP语法 — PHP的函数
( 3) 将数组作为函数的参数
例,将数组作为函数的参数
<?php
function first ($arr_x)
{ return ($arr_x[0]); }
$a=first (array(8));
echo,a=$a <br>”;
>
说明:上面程序显示数组的第一个元素。
返回目录
44
9.4 PHP编程实例 — 访问计数器设计两例
访问计数器通常是一个网站不可缺少的组成部分,它能使系
统管理员清楚自己网站的访问人数,反映出该网站人气值的高
低。 PHP没有特殊的访问计数器函数,所以设计一个计数器具有
一定实用性。
例,访问计数器举例 1
下面的计数器将某网页被浏览的次数保存在一个文件中,并
能根据浏览情况实时更新浏览次数,在新访问者打开页面时加
以显示。(注:下面代码前的序号是为写说明而添加,不是程
序内容)
返回目录
45
9.4 PHP编程实例 — 访问计数器设计两例
<html>
<head> <title>访问计数器 </title> </head>
<body>
<?php
1 file_count( );
2 function file_count( )
{
3 if (!file_exists(“/tmp?count.txt”))
{exec(“echo 0>/tmp/count.txt”) ; }
4 $f_open=fopen(“/tmp/count.txt”,“r+”) ;
5 $f_size=filesize(“/tmp/count.txt”) ;
返回目录
46
9.4 PHP编程实例 — 访问计数器设计两例
6 $count=fgets($f_open,$f_size+1) ;
7 $count=$count+1;
8 fseek($f_open,0);
9 fputs($f_open,$count);
10 fclose($f_open);
11 echo,本页已有,,$count.”人浏览, ;
12 return $count;
}
>
</body>
</html>
返回目录
47
9.4 PHP编程实例 — 访问计数器设计两例
说明:
( 1) 调用 file_count() 函数 。
( 2) 声明了一个没有自变量的函数 file_count()。
( 3) 判断 /tmp目录下文本文件 count.txt是否不存在, 若不存在则进入 if
语句内部, 用 exec() 函数建立 count.txt文件, 并把数字 0写入文件, 然后退
出判断继续向下 。 若存在该文件, 则跳过 if语句直接向下 。 count.txt用来记
录访问数 。
( 4) 以可读写方式打开 count.txt文件, 并把文件当前指针赋给变量 $f_open。
( 5) 将 count.txt文件的长度赋给变量 $f_size。
( 6) 将 count.txt文件的当前值 ( 已访问人数 ) 取出赋给变量 $count。
( 7) 将变量 $count的当前值加 1后赋给变量 $count。
返回目录
48
9.4 PHP编程实例 — 访问计数器设计两例
( 8) 文件指针回到文件开始处 。
( 9) 将变量 $count的当前值写入 count.txt文件覆盖原有值 。
( 10) 关闭 count.txt文件 。
( 11) 显示浏览人数 。
( 12)返回变量 $count的值。
例,访问计数器举例 2
基于数据库的计数器比起基于文件的计数器应用更广泛,下面介绍
在 Windows平台下基于数据库的计数器,采用 SQLServer联接数据库。
在编写程序之前先用 SQL语句建立数据库 test和数据表 table_count,
给表建立两个字段,count和 id,插 入一条记录,使 count为 0,id为 1,
并设置它们不能为空。
返回目录
49
9.4 PHP编程实例 — 访问计数器设计两例
注,下面代码前的序号是为写说明而添加, 不是程序内容,
<html>
<head> <title>访问计数器 </title> </head>
<body>
<?php
function mssql_count()
{
1 dl (?php_mssql.dll);
2 $conn=mssql_connect(“localhost”,“www”,“something”);
3 mssql_select_db(“test” );
返回目录
50
9.4 PHP编程实例 — 访问计数器设计两例
4 $sql=”select ﹡ from table_count,;
5 $result=mssql_query($sql,$conn);
6 $count=mssql_result($result,0,count );
7 $sql=”updata table_count set count=”,($count+1),,while id=1”;
8 mssql_query($sql,$conn);
9 mssql_close($conn);
10 return $count+1;
}
>
说明:执行过程如下 。
( 1) 用函数 dll( )加载 Microsoft Server支持数据库, 只有这样
才能使用 Microsoft SQL Server的相关函数 。
返回目录
51
9.4 PHP编程实例 — 访问计数器设计两例
( 2) 使用 mssql_connect()函数连接数据库服务器, 其中
localhost代表本地主机,www代表用户名,something为密码 。
( 3) 指明所要连接的数据库是 test。
( 4) $sql是一条查询数据表 table_count的 SQL语句 。
( 5) 将结果存入变量 $result中 。
( 6) 将查询结果 $result中的 count值取出给 $count。
( 7) 一条 SQL语句, 将 count字段的值用 $count+1替代 。
( 8) 将替代的结果存入表 。
( 9) 关闭与 Microsoft SQL Server数据库的连接 。
( 10) 返回给用户当前访问数 。
返回目录
52
9.4 PHP编程实例 — PHP程序编制
PHP程序的编写可以用任意一种文本编辑器, PHP内建
调试器,当程序编好后在浏览器端就能看到程序的执行调
试信息,即见即改。
程序中常见错误有:
( 1) 语句结尾没有加分号 。
( 2) 变量前面没有加变量符 $。
( 3) 大括号不匹配, 没有成对出现 。
( 4) 中英文标点错误 。 PHP程序中使用的标点符号一律是
英文符号 。
返回目录
53
9.4 PHP编程实例 — PHP程序编制
( 5) 变量作用域错误 。 变量作用域是指变量在程序
中哪一部分可用 。 PHP只认可两种作用域:页面作用域
(适用于整个 Web页面 ) 和函数作用域 ( 适用于单个函
数 ) 。
通常 PHP变量只在它们定义的作用域范围内才可以使用 。
在函数内部定义页面作用域变量的格式为,global 变量名 ;
定义后的变量相当于一个全局变量 。
( 6)逻辑错误。当发生逻辑错误时,程序表面上执行
正常,但执行结果却与设想的不一样,这样的错误解决
起来有些难度,必须积累大量的实践经验。所以,编写
程序时要反复读几遍,理顺各种关系,尽量避免逻辑错
误发生。
返回目录
54
本 章 小 结
? PHP概述
– PHP( Personal Home Page) 是一种在 Web服务器端执行的,
嵌入 HTML文档的脚本语言 。
– 提供丰富的数据库接口, 可以进行几乎所有流行数据库操作 。
? PHP安装
– PHP在 Windows下的安装
– PHP在 Unix操作系统下的安装
? PHP语法
– PHP支持很多数据类型, 如:常量, 变量, 数组, 标识符,
运算符等 。
– PHP中的变量都以 $开头, 后面跟变量的名字 。 PHP中变量名
区分大小写 。
返回目录
55
本 章 小 结
? PHP语法
– PHP中变量有 6种类型:整型, 浮点型, 字符型,
数组型, 对象型, 布尔值 。
– PHP的运算符有算术, 字符串, 赋值, 位, 逻辑
运算和其它运算符 。
– 表达式是标识符和运算符的组合, 是由一个或多
个操作符连接起来的操作数, 用于计算一个值 。
– 语句通常由数值, 变量, 函数和关键字组成 。
– 将常用的流程和变量等程序元素放在一起组成一
个固定格式加以调用, 这个固定格式称为函数 。
返回目录