第一章 php简介
php 是一种服务器内置式的script 语言,它的出现使得在unix上快速地开发动态web成为现实。
php是rasmus lerdorf在1994年秋天构思出来的。最早的未发行版本是他在自己的主页上来用来和观看他的在线简历的人保持联系的。第一个交付用户使用的版本是在1995年初发行的,它只是被当作一个个人主页制作工具。当时它仅包括一个只能懂得很少几条宏指令的非常简单的分析引擎和一组用于主页信息反馈的工具(一个留言簿,一个计数器和一些其他的东西)。1995年年中,rasmus重写了整个解析器,并取名为php/fi 2。fi来源于他写的另外一个html表单集成数据的软件包。他把个人主页工具,表单集成工具合并在一起,并加入了msql数据库的支持,这样就有了php/fi。此后php/fi便以一种令人惊奇的速度传播开来,人们开始大量使用它编写程序。
我们无法确切的统计它的使用范围,但是根据估计到1996年底,世界上已经有至少15,000个站点在使用php/fil。到了1997年年中这个数字已经增长到超过50,000个站点。 1997年年中我们也发现了php发展过程中一个重大的转折。这就是php的开发从rasmus个人的爱好升级到一群程序员们有组织的工作。 再后来,这个解析器被zeev suraski和andi gutmans重写,通过这次全面的重写,大量php/fi的功能被移植到php中,并且成为了php的基本雏形。
到1998年年中时,已经有大量的商业化产品,例如 c2的 stronghold web server和redhat linux捆绑了php/fi解析器或php解析器,根据netcraft估计的保守数据,php已经被世界上150,000个站点所采用。通过进一步分析,我们知道其使用数量远比使用netscape公司旗舰产品--企业级web服务器的站点多。 php大量采用了c, java和perl语言的语法,并加入了各种php自己的特征。它与javascript等语言的一个区别就是php是在服务器执行,客户机所看到的是其在服务器上运行的结果,这意味着您若想采用php scrpit,必须得有 web server 支持。
php支持http的身份认证、cookie、gif图象创建,它的一个最有代表性的特点是它的数据库层,它使得编写基于数据库的网页变得非常简单。下列出了目前所支持的数据库:
oracle ,sybase , msql ,mysql ,informix ,solid dbase ,odbc, unix dbm, postgresql ,adabas d,filepro velocis。
php也支持与采用pop3、http、snmp、nntp、imap等协议的服务进行网络编程。
php的程序模式
有三种方法从html进入php程序模式:
第一种方法: php语句; ?>
如:
echo(this is the simplest, an sgml processing instruction\n); ?>
第二种方法:
如:
第一种方法:
如:
第二章 变 量
php支持下面类型的变量:
(一)、内部变量
主要有整数(interger),浮点数(float-point numbers),字符串(string),数组(array),对象(object)。
1 初始化变量
要在php中初始化变量, 你只要简单的给它赋值即可。对于大多数类型,这是最直接的。对于数组和对象,可以使用其它方法。
2 初始化数组
数组可以使用这两种方法之一来赋值: 使用一系列连续数值,或使用array()函数构造 (见 array functions 部分)。
要将连续的数值加进数组,你只需将要赋值赋给不带下标的数组变量。该值会作为数组的最后元素加进数组中。
例:
$names[] = jill; // $names[0] = jill
$names[] = jack; // $names[1] = jack
与c、perl相似,数组下标也是从0开始。
3 初始化对象
要初始化一个对象,需用new语句建立该类型的变量。
class foo {
function do_foo() {
echo doing foo.;
}
}
$bar = new foo;
$bar->do_foo();
4 变量作用域
变量的作用域就是它的有效范围。对于大多数php的变量只有一个作用域。在用户自定义函数里采用局部变量作用域。函数内使用的变量被缺省设置为局部变量。例如:
$a=1; /* global scope */
function test() {
echo $a; /* reference to local scope variable */
}
test();
这段程序不会输出任何的东西,因为echo语句要输出局部变量 $a ,而函数内的 $a 从未被赋过值。你可能注意到这和c语言有点小小的区别,c中全局变量可以直接在函数内引用,除非它被一个局部变量所覆盖。而这使得人们可能不注意修改了全局变量的值。在php中要在函数内部使用全局变量必须显式的说明。
例如:
$a=1;
$b=2;
function sum() {
