接上篇~
6.switch语句
使用 Switch 语句可以避免冗长的 if..elseif..else 代码块。
语法
switch (表达式) { case label1: ...; break; case label2: ...; break; default: ...; }
工作原理:
- 对表达式(通常是变量)进行一次计算
- 把表达式的值与结构中 case 的值进行比较
- 如果存在匹配,则执行与 case 关联的代码
- 代码执行后,break 语句阻止代码跳入下一个 case 中继续执行
- 如果没有 case 为真,则使用 default 语句
<?php switch ($x) { case 1: echo "Number 1"; break; case 2: echo "Number 2"; break; case 3: echo "Number 3"; break; default: echo "No number between 1 and 3"; } ?> </body> </html>
7.PHP数组
数组能够在单独的变量名中存储一个或多个值。
php中有三种数组类型:
数值数组数值数组
数值数组存储的每个元素都带有一个数字 ID 键。
可以使用不同的方法来创建数值数组:
例子 1
在这个例子中,会自动分配 ID 键:
$names = array("Peter","Quagmire","Joe");
例子 2
在这个例子中,我们人工分配的 ID 键:
$names[0] = "Peter"; $names[1] = "Quagmire"; $names[2] = "Joe";
可以在脚本中使用这些 ID 键:
<?php $names[0] = "Peter"; $names[1] = "Quagmire"; $names[2] = "Joe"; echo $names[1] . " and " . $names[2] . " are ". $names[0] . "'s neighbors"; ?>
以上代码的输出:
Quagmire and Joe are Peter's neighbors--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
关联数组
关联数组,它的每个 ID 键都关联一个值。
在存储有关具体命名的值的数据时,使用数值数组不是最好的做法。
通过关联数组,我们可以把值作为键,并向它们赋值。
例子 1
在本例中,我们使用一个数组把年龄分配给不同的人:
$ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34);
例子 2
本例与例子 1 相同,不过展示了另一种创建数组的方法:
$ages['Peter'] = "32"; $ages['Quagmire'] = "30"; $ages['Joe'] = "34";
可以在脚本中使用 ID 键:
<?php $ages['Peter'] = "32"; $ages['Quagmire'] = "30"; $ages['Joe'] = "34"; echo "Peter is " . $ages['Peter'] . " years old."; ?>
以上脚本的输出:
Peter is 32 years old.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
多维数组概念等同于其他语言的数组,这儿就不详细介绍了.
8.循环
while 语句
只要指定的条件成立,while 语句将重复执行代码块。
语法
while (condition) ...;下面的例子示范了一个循环,只要变量 i 小于或等于 5,代码就会一直循环执行下去。循环每循环一次,变量就会递增 1:
<html>
<body>
<?php
$i=1;
while($i<=5)
{
echo "The number is " . $i . "<br />";
$i++;
}
?>
</body>
</html>
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
do...while 语句
do...while 语句会至少执行一次代码 - 然后,只要条件成立,就会重复进行循环。
语法
do { ...; } while (condition);下面的例子将对 i 的值进行一次累加,然后,只要 i 小于 5 的条件成立,就会继续累加下去:
<html>
<body>
<?php
$i=0;
do
{
$i++;
echo "The number is " . $i . "<br />";
}
while ($i<5);
?>
</body>
</html>
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
for 语句
如果您已经确定了代码块的重复执行次数,则可以使用 for 语句。
语法
for (initialization; condition; increment) { ...; }下面的例子会把文本 "Hello World!" 显示 5 次:
<html>
<body>
<?php
for ($i=1; $i<=5; $i++)
{
echo "Hello World!<br />";
}
?>
</body>
</html>
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
foreach 语句
foreach 语句用于循环遍历数组。
每进行一次循环,当前数组元素的值就会被赋值给 value 变量(数组指针会逐一地移动) - 以此类推。
语法
foreach (array as value) { ...; }下面的例子示范了一个循环,这个循环可以输出给定数组的值:
<html>
<body>
<?php
$arr=array("one", "two", "three");
foreach ($arr as $value)
{
echo "Value: " . $value . "<br />";
}
?>
</body>
</html>
9.函数
PHP 的真正威力源自于它的函数。在 PHP 中,提供了超过 700 个内建的函数。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
创建 PHP 函数
所有的函数都使用关键词 "function()" 来开始
一个简单的函数,在其被调用时能输出我的名称的:
<html> <body> <?php function writeMyName() { echo "David Yang"; } writeMyName(); ?> </body> </html>
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
使用 PHP 函数
现在,我们要在 PHP 脚本中使用这个函数了:
<html> <body> <?php function writeMyName() { echo "David Yang"; } echo "Hello world!<br />"; echo "My name is "; writeMyName(); echo ".<br />That's right, "; writeMyName(); echo " is my name."; ?> </body> </html>以上代码的输出为:
Hello world! My name is David Yang. That's right, David Yang is my name.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
为函数添加参数
下面的例子讲输出不同的名字,但姓是相同的:
<html> <body> <?php function writeMyName($fname) { echo $fname . " Yang.<br />"; } echo "My name is "; writeMyName("David"); echo "My name is "; writeMyName("Mike"); echo "My name is "; writeMyName("John"); ?> </body> </html>上面的代码的输出:
My name is David Yang. My name is Mike Yang. My name is John Yang.下面的函数有两个参数:
<html> <body> <?php function writeMyName($fname,$punctuation) { echo $fname . " Yang" . $punctuation . "<br />"; } echo "My name is "; writeMyName("David","."); echo "My name is "; writeMyName("Mike","!"); echo "My name is "; writeMyName("John","..."); ?> </body> </html>上面的代码的输出:
My name is David Yang. My name is Mike Yang! My name is John Yang...
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
为函数添加返回值
<html> <body> <?php function add($x,$y) { $total = $x + $y; return $total; } echo "1 + 16 = " . add(1,16); ?> </body> </html>以上代码的输出:
1 + 16 = 17
10.表单和用户输入
PHP 的 $_GET 和 $_POST 用于检索表单中的值,比如用户输入。
PHP 表单处理
表单实例:
<html> <body> <form action="welcome.php" method="post"> Name: <input type="text" name="name" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> </body> </html>上面的 HTML 页面实例包含了两个输入框和一个提交按钮。当用户填写该表单并单击提交按钮时,表单的数据会被送往 "welcome.php" 这个文件。
"welcome.php" 文件类似这样:
<html> <body> Welcome <?php echo $_POST["name"]; ?>.<br /> You are <?php echo $_POST["age"]; ?> years old. </body> </html>上面这个脚本的输出样本类似这样:
Welcome John. You are 28 years old.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
表单验证
应该在任何可能的时候对用户输入进行验证。客户端的验证速度更快,并且可以减轻服务器的负载。
不过,任何流量很高以至于不得不担心服务器资源的站点,也有必要担心站点的安全性。如果表单访问的是数据库,就非常有必要采用服务器端的验证。
在服务器验证表单的一种好的方式是,把表单传给它自己,而不是跳转到不同的页面。这样用户就可以在同一张表单页面得到错误信息。用户也就更容易发现错误了。
11.$_GET
$_GET 变量用于收集来自 method="get" 的表单中的值。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
$_GET 变量
$_GET 变量是一个数组,内容是由 HTTP GET 方法发送的变量名称和值。
$_GET 变量用于收集来自 method="get" 的表单中的值。从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送的信息量也有限制(最多 100 个字符)。
例子
<form action="welcome.php" method="get"
>
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
当用户点击提交按钮时,发送的 URL 会类似这样:
http://www.w3school.com.cn/welcome.php?name=Peter&age=37"welcome.php" 文件现在可以通过 $_GET 变量来获取表单数据了(请注意,表单域的名称会自动成为 $_GET 数组中的 ID 键):
Welcome <?php echo$_GET["name"]
; ?>.<br /> You are <?php echo$_GET["age"]
; ?> years old!
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
为什么使用 $_GET?
注释:在使用 $_GET 变量时,所有的变量名和值都会显示在 URL 中。所以在发送密码或其他敏感信息时,不应该使用这个方法。不过,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。
注释:HTTP GET 方法不适合大型的变量值;值是不能超过 100 个字符的。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
$_REQUEST 变量
PHP 的 $_REQUEST 变量包含了 $_GET, $_POST 以及 $_COOKIE 的内容。
PHP 的 $_REQUEST 变量可用来取得通过 GET 和 POST 方法发送的表单数据的结果。
例子
Welcome <?php echo $_REQUEST["name"]; ?>.<br /> You are <?php echo $_REQUEST["age"]; ?> years old!
12.$_POST
$_POST 变量用于收集来自 method="post" 的表单中的值。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
$_POST 变量
$_POST 变量是一个数组,内容是由 HTTP POST 方法发送的变量名称和值。
$_POST 变量用于收集来自 method="post" 的表单中的值。从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。
例子
<form action="welcome.php" method="post"
>
Enter your name: <input type="text" name="name" />
Enter your age: <input type="text" name="age" />
<input type="submit" />
</form>
当用户点击提交按钮,URL 不会含有任何表单数据,看上去类似这样:
http://www.w3school.com.cn/welcome.php"welcome.php" 文件现在可以通过 $_POST 变量来获取表单数据了(请注意,表单域的名称会自动成为 $_POST 数组中的 ID 键):
Welcome <?php echo$_POST["name"]
; ?>.<br /> You are <?php echo$_POST["age"]
; ?> years old!
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
为什么使用 $_POST?
通过 HTTP POST 发送的变量不会显示在 URL 中。
变量没有长度限制。
不过,由于变量不显示在 URL 中,所以无法把页面加入书签。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
$_REQUEST 变量
PHP 的 $_REQUEST 变量包含了 $_GET, $_POST 以及 $_COOKIE 的内容。
PHP 的 $_REQUEST 变量可用来取得通过 GET 和 POST 方法发送的表单数据的结果。
例子
Welcome <?php echo $_REQUEST["name"]; ?>.<br /> You are <?php echo $_REQUEST["age"]; ?> years old!