这个功能出了什么问题?

时间:2009-06-07 19:14:12

标签: php function if-statement

我正在使用此功能来确定我的应用程序是在线还是离线:

function online() {
   if ($online == "0") {
     if($_SESSION['exp_user']['userlevel'] != "1") {
          include("error/offline.php");
          exit();
                                                   } 
                        }
                   }

但是,如果数据库中的数据值设置为0,并且$online确定='0',为什么那些用户级别不是1的用户不包含error / offline.php?

谢谢:)

3 个答案:

答案 0 :(得分:7)

什么是$online,一个全局变量?如果是这样,您必须global $online在函数内访问它。现在$online是一个默认的null值,它不等于字符串“0”。

答案 1 :(得分:1)

“混乱”是关于全局变量的。但是如果你不确定,调试这样的东西的一种方法是在各个地方添加“echo”或“die”语句,看看代码中发生了什么。在第一个“if”语句中放置一个以查看它是否到达那么远,然后在第二个“if”语句中放入一个。回显您正在测试的变量的值,以便了解条件不起作用的原因。

答案 2 :(得分:1)

JW的调试要点。虽然只是制作一个快速的类,如Logger或Debug,你可以调用日志消息作为回声,而不是用回声乱丢你的代码。或者更好的是使用现有工具,例如http://www.indelible.org/php/Log/guide.html。这将允许您在[FirePHP in Firefox] [2]中进行调试,而不必再次清理echo语句。或者只是直接使用Firebug,如果您只打算在浏览器迭代测试中使用它进行调试。

您可以稍后清理它们或将其用作代码记录程序,该代码记录程序应位于大多数应用程序中,以用于错误记录和报告指标。