PHP编程纠错指南

互联网 | 编辑: 董宇成 2006-12-01 00:00:00转载 一键看全文

最近一段时间,PHP凭借其功能强大,简单易用的特点被越来越多的人们所喜爱和接受,成为目前最为流行的脚本编程语言之一。本文将结合用户在使用PHP过程中经常容易出现的问题,包括语法错误,程序运行错误以及逻辑错误等展开详细的介绍,希望能够对那些目前正在学习PHP语言的用

PHP编程纠错指南(3)

这样,我们就知道问题是出现在VerifyPassword()函数的身上。检查了一遍函数之后,我们怀疑问题可能出现在“if”语句中。所以我们屏蔽到VerifyPassword()函数中的条件语句,并进行如下输出:

 print “UserPassword =〉 $UserPassword, Password =〉 $Password,”;

 print “Password==UserPassword =〉 ”.(int)($Password==$UserPassword).“〈BR〉”;

 print “UserName =〉 $UserName, Name =〉 $Name, ”;

 print “Name==UserName =〉”.(int)($Name==$UserName).“〈BR〉”;

(说明:我们使用(int)($Password==$UserPassword)语句将比较结果转化为整数0或1)

程序修改之后的实际输出结果如下:

UserPassword =〉 foo1ish, Password =〉 , Password==UserPassword =〉 0

UserName =〉 admin, Name =〉 , Name==UserName =〉 1

I’m sorry, the password is incorrect

这里,我们可以清楚的看出Password和Name两个变量都是空值,也就难怪判断语句不起作用了。

那么为什么$Password为空值呢?我们在程序的开头部分就已经明确的对$Password变量进行了赋值,但是因为某种原其变量值无法带入到VerifyPassword()函数中。回想一下PHP语言关于变量作用域的规定,我们可以立刻找到出现问题的原因,那就是如果要想在函数中使用变量,必须将该变量声明为全局变量。知道了错误的根源之后,我们在VerifyPassword()函数的第一行加入以下语句,然后重新运行程序:

global $Password, $Name;

程序运行结果如下:

UserPassword =〉 foo1ish, Password =〉 Secret, Password==UserPassword =〉 0

UserName =〉 admin, Name =〉 admin, Name==UserName =〉 1

The Password is correct

为什么?按理说我们应当得到密码不正确的错误提示。再一次仔细检查遍程序之后,终于发现原来我们把逻辑运算符“==”误用成“=”,这样就把$UserPassword变量的值赋给了$Password变量。把最后的这两处错误改正过来之后,完成的程序如下:

〈?

 $Password=“Secret”;

 $Name=“admin”;

 function VerifyPassword ($UserPassword, $UserName){

  global $Password, $Name;

  if ($Password==$UserPassword && $Name==$UserName){

   return 1;

  }

  else { return 0;}

 }

 if (VerifyPassword (“foo1ish”, “admin”)){

  print “The Password is correct”;

 }

 else {

  print “I’m sorry, the password is incorrect”;

 }

?〉

执行程序得到如下结果:

  I’m sorry, the password is incorrect.

输入正确密码重新运行时,得到以下结果:

  The Password is correct

编辑 引用 报告 评分 回复

更多软件资讯请点击PCHOME首页

提示:试试键盘 “← →” 可以实现快速翻页 

总共 3 页< 上一页123
一键看全文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑