### PHP 入门速成

PHP 是一种用于创建动态 WEB 页面的服务端脚本语言。如同 ASP 和 ColdFusion，用户可以混合使用 PHP 和 HTML 编写 WEB 页面，当访问者浏览到该页面时，服务端会首先对页面中的 PHP 命令进行处理，然后把处理后的结果连同 HTML 内容一起传送到访问端的浏览器。但是与 ASP 或 ColdFusion 不同，PHP 是一种源代码开放程序，拥有很好的跨平台兼容性。用户可以在 Windows NT 系统以及许多版本的 Unix 系统上运行 PHP，而且可以将 PHP 作为 Apache 服务器的内置模块或 CGI 程序运行。
除了能够精确的控制 WEB 页面的显示内容之外，用户还可以通过使用 PHP 发送 HTTP 报头。用户可以通过 PHP 设置 cookies，管理用户身份识别，并对用户浏览页面进行重定向。PHP 具有非常强大的数据库支持功能，能够访问几乎目前所有较为流行的数据库系统。此外，PHP 可以与多个外接库集成，为用户提供更多的实用功能，如生成 PDF 文件等。
用户可以直接在 WEB 页面中输入 PHP 命令代码，因而不需要任何特殊的开发环境。在 WEB 页面中，所有 PHP 代码都被放置在“<?php”和“ ?>”中。此外，用户还可以选择使用诸如<SCRIPT LANGUAGE="php"></SCRIPT>等的形式。PHP 引擎会自动识别并处理页面中所有位于 PHP 定界符之间的代码。
PHP 脚本语言的语法结构与 C 语言和 Perl 语言的语法风格非常相似。用户在使用变量前不需要对变量进行声明。使用 PHP 创建数组的过程也非常简单。PHP 还具有基本的面向对象组件功能，可以极大的方便用户有效组织和封装自己编写的代码。
PHP 语法概述
A. 基本语法
即使初次接触 PHP 的用户也会发现自己对 PHP 的语法风格并不陌生。
例如：<？php
echo “Hello！”；
？>
显示结果为“Hello！”。
PHP 中，所有的变量都以标识“$”开头。我们可以对上述代码做如下改动：
<？php
$greeting = “Hello！”；
echo $greeting；
？>
改变后的代码显示结果不变。
PHP 中使用“.”符号连接不同的字符串，而其它的算术运算符则继承了流行编程语言的风格。举例如下：
<？php
$greeting = “Hello！”；
$num = 3 + 2；
$num++；
echo “$greeting $num people！”；
？>
显示结果为“Hello！6 people！”。
PHP 对各种运算符及运算规则都有一套完整的规定，如果用户具有 C 或 C++语言的编程背景的话，可以发现一切都得心应手。
与 Perl 语言一样，在 PHP 中，如果在双引号包含的字符串中含有变量的话，该变量将用相应的变量值替换；如果字符串被单引号包含，则不做替换。例如：
<？php
$name = ‘PETER’；
$greeting_1 = “Hello, $name！”；
$greeting_2 = ‘Hello, $name！’；
echo “$greeting_1n”；
echo “$greeting_2n”；
？>
显示结果为：
Hello, PETER！
Hello, $name！
（注：上述代码中的“n”为换行符，只能在双引号字符串下使用）
B. 变量
PHP 允许用户象使用常规变量一样使用环境变量。例如，在页面 http://www.nba.com/scores/index.html 中包含如下代码：
<？php
echo “[$REQUEST_URI]”；
？>
则输出结果为[/scores/index.html]
C. 数组
用户在使用 PHP 创建数组时，可以把数组索引（包括常规索引或关联索引）加入方括号中。例如：
$fruit[0] = ‘banana’;
$fruit[1] = ‘apple’;
$favorites['animal'] = ‘tiger’;
$favorites['sports'] = ‘basketball’;
如果用户在向数组赋值时不指明数组下标，PHP 将自动把该对象加入到数组末尾。例如对于上述$fruit 数组可以用以下方式赋值而保持结果不变，
$fruit[] = ‘banana’;
$fruit[] = ‘apple’;
同样，在 PHP 中，用户还可以根据需要建立多维数组。例如：
$people[‘David’][‘shirt’] = ‘blue’;
$people[‘David’][‘car’] = ‘red’;
$people[‘Adam’][‘shirt’] = ‘white’;
$people[‘Adam’][‘car’] = ‘silver’;
在 PHP 中，用户还可以使用 array()函数快速建立数组。例如：
$fruit = array(‘banana’,‘apple’);
$favorites = array(‘animal’ => ‘tiger’, ‘sports’ => ‘basketball’);
或者使用 array()函数创建多维数组：
$people = array (‘David’ => array(‘shirt’ => ‘blue’,’car’ => ‘red’),
‘Adam’ => array(‘shirt’ => ‘white’,‘car’ => ‘silver’));
此外，PHP 还提供了内置函数 count()用于计算数组中的元素数量。例如：
$fruit = array(‘banana’, ‘apple’);
print count($fruit);
显示结果为 2。
D. 结构控制
在 PHP 中，用户可以使用“for”或“while”等的循环结构语句。例如：
for ($i = 4; $i < 8; $i++) {
print “I have eaten $i apples today.n”； }
或
$i = 4; while ($i < 8) {
print “I have eaten $i apples today.n”;
$i++;
}
返回结果为：
I have eaten 4 apples today.
I have eaten 5 apples today.
I have eaten 6 apples today.
I have eaten 7 apples today.
此外，用户还可以使用“if”和“elseif”等的选择性结构语句。例如：
if ($user_count > 200) {
print “The site is busy right now!”;}
elseif ($user_count > 100) {
print “The site is active right now!”;
else {
print “The site is idle - only $user_count user logged on.”;
}
表单处理
PHP 为用户提供了众多方便易用的强大功能。在表单的处理方面，PHP 能够自动地将由客户端表单发送的数据赋值给相应变量，从而极大地简化了整个表单的处理过程。
举例来说，用户建立如下表单：
<INPUT TYPE=TEXT NAME=“name” VALUE=“PETER”>
当使用 PHP 对上述代码进行处理时，PHP 自动创建一个名为$name 的变量，并将变量值“PETER”赋予该变量。
用户可以直接对 PHP 创建的变量进行各种操作，例如显示变量值：
echo “Hi $name！”；
或对变量值进行验证：
if ($name == “PETER”) { echo “Please check out your email.”； }
下面，我们就来看一下如何通过使用 PHP 创建并处理一个基本的表单。在示例当中，我们将会要求表单的填写者回答几个简短的问题，包括输入表单填写者的姓名，电子邮件地址，完成调查问卷等。
这里，我们将所要设计的页面按照功能划分成表单显示和表单处理两个功能模块。这样，用户就不必设计两个不同的页面，而只需要在同一个 PHP 页面中通过逻辑控制显示或处理相应的功能模块。
A. 表单显示
我们通过第一个功能模块来实现表单的显示。具体代码为：
<？php
function display_form()
{
global $PHP_SELF;
？>
<FORM TARGET=“<？php echo $PHP_SELF; ？>”METHOD=GET>
Name: <INPUT TYPE=TEXT NAME=“name”><BR>
Favorite Fruit: <INPUT TYPE=RADIO NAME=“fruit” VALUE=“apple”>Apple
<INPUT TYPE=RADIO NAME=“fruit” VALUE=“orange”>Orange
<INPUT TYPE=RADIO NAME=“fruit” VALUE=“banana”>Banana
Favorite Times to Eat Fruit:
<INPUT TYPE=CHECKBOX NAME=“times[]” VALUE=“m”>Morning
<INPUT TYPE=CHECKBOX NAME=“times[]” VALUE=“n”>Noon
<INPUT TYPE=CHECKBOX NAME=“times[]” VALUE=“d”>Dinner
<INPUT TYPE=CHECKBOX NAME=“times[]” VALUE=“l”>Latenight
<INPUT TYPE=HIDDEN NAME=“stage” VALUE= “results”>
<INPUT TYPE=SUBMIT VALUE= “Thanks!”>
</FORM>
<?php
}
?>
上述代码中绝大多数都是创建表单所必需的 HTML 代码。在此，我们仅对所涉及到的 PHP 知识做一下简单介绍。
首先，我们来看一下代码开始处的变量$PHP_SELF。变量$PHP_SELF 是 PHP 中一个很方便的指针，其变量值就是当前页面的 URL 地址。这样，我们就可以通过在随后的 form 标签中将 TARGET 的值设定为$PHP_SELF，实现由该表单页面处理表单的目的。这里，我们使用$PHP_SELF 变量而不使用页面的实际地址，是因为通过使用$PHP_SELF 变量，我们可以方便对编写的页面代码进行修改和移动，而不必担心在每次改动之后重新输入新的页面地址。
另外，在使用$PHP_SELF 变量时，我们采用了如下方式：
global $PHP_SELF；
这表明代码中的$PHP_SELF 变量为全局变量。用户在使用 PHP 的过程中一定要注意 PHP 中任何的函数变量都是局部变量。这就意味着任何函数变量的作用域都只局限于包括该变量的函数本身。即使函数外存在同名变量，变量的值也不相同。因此，如果我们没有在代码中以显式方式声明函数变量$PHP_SELF 为全局变量具有全局唯一值的话，用户就会发现函数中的变量$PHP_SELF 的值将会为空，而不是我们预先所期望的当前页面的 URL 地址。
用户可能已经注意到我们将表单复选选项的名称设置为 times[]数组，而把单选选项的名称设定为 fruit 常规变量。这是因为单选选项只允许用户选择唯一一个正确选项，因此 fruit 变量的值只可能是一个字符串；相反，复选选项则允许用户做多重性选择。如果，用户希望 PHP 能够保存用户可能作出的所有选择的话，就需要使用数组来保存所有的可能值。按照 PHP 的语法规则，我们通过在变量名 times 后面加上方括号，使 PHP 知道该变量是一个数组变量而不是普通的常规变量。
最后，我们设定了一个名为 stage 的隐含变量，通过使用该变量，我们可以控制
是否显示表单还是处理表单结果。