<?php header('Content-Type:text/html;charset=utf-8');?>
<p>看书看累了,把今天看到的一些知识点总结一下,如何使用switch函数对变量进行遍历从而实现判断前端网页用户是否输入数据。<br />
在PHP中,switch无疑是使用频率很高的一个函数功能。其算法简单明了容易理解,比如: </p>
<?php
switch($i) {
case 1:
echo "这是苹果.";
break;
case 2:
echo "这是冰.";
break;
}
?>
<p>在实际运用中不可能如此使用它,比如现在我构建了一个输入页面,要求用户输入我需要的信息。<br />
比如我需要用户的first_name, 和last_name,那么我们如何通过程序来判断用户是否输入了名字,<br />
如果没有,我们如何创建一个友好的页面来提醒他输入,并在确认无误后插入数据库呢?这个时候switch就派上用场了。代码如下:<br />
这是我今天写的一个小小的插入程序,我们来逐行分析:看注释 </p>
<?php
include 'include/config.php'; /*调用配置文件,其中包含了database_connection函数的结构体,用来连接mysql数据库*/
database_connection(); //连接数据库,预定义函数
$first_name = $_POST['first_name']; /*变量传递,从前台页面获取用户信息*/
$last_name = $_POST['last_name'];
$department = $_POST['department'];
$classification = $_POST['classification'];
$employee_type = $_POST['employee_type'];
$sql="insert into matt(first_name, last_name, department, classification, employee_type, date)
values('$first_name','$last_name','$department','$classification','$employee_type',now())";
/* 检查变量是否为空,就是说看看用户是不是输入了数据 */
switch($first_name) {
case is_null($first_name): //is_null函数用来判断变量是否被赋值
echo "请留下你的姓名.";
break;
case !is_null($first_name):
switch($last_name) { //在这里我用了个switch嵌套结构,从而实现了逐行扫描input的功能,请仔细体会
case is_null($last_name):
echo "请留下你的姓名!";
break;
case !is_null($last_name): //扫描结束,如果符合条件,可以插入数据
$result=mysql_query($sql);
if($result) {
echo "您的信息已提交. <br><strong>页面在2秒后返回上一页!</strong>";
?>
<script> setTimeout("window.location='http://www.domain.com/form.php'",1500); </script>
<?php
} else {
echo "对不起,出错了!";
}
break;
}
break;
}
?>
<p>当然了,switch并不是实现该功能的唯一途径。用if语句同样能够完成,但效率要远低于switch,就算是我这里使用了switch,我相信这也不是最有效率的方式。<br />
我自己也在琢磨,看有些地方是不是能够改进,这种嵌套实现逐行扫描的办法从理论上来说并不提倡。如果有1000000行怎么办??<br />
计算机不累死了?恩。我们还是需要思考。</p>