这个功能有什么问题?

问题描述:

我使用这个功能来确定我的应用是否应当被在线或离线:这个功能有什么问题?

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

然而,随着数据库设置为0的数据值,并$online确实=“0”,为什么是错误/offline.php不包括那些谁是用户级别不是1?

谢谢:)

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

+0

$ online是一个全局变量。我如何使它成为全局的函数来访问它? – bear 2009-06-07 19:21:10

+0

在使用$ online之前,您可以在您的函数中编写全局$ online。因为它存在于你的函数中,所以$ online表示与全局$ online相同的东西。 – chaos 2009-06-07 19:23:14

“混沌”对于全局变量是正确的。但是如果你不确定,一种调试方式就是在各个地方添加“echo”或“die”语句,以查看代码中发生了什么。把第一个“if”语句放入第一个“if”语句中,看看它是否到达那么远,然后是第二个“if”语句中的一个。回应您正在测试的变量的值,以便您可以说明条件无法正常工作的原因。

要JW的调试点。不要乱丢代码,只要创建一个快速的类,例如记录器或调试,你可以调用它来记录消息作为回声。或更好的使用现有的工具,如http://www.indelible.org/php/Log/guide.html。这会让你在[Firefox中的FirePHP] [2]中进行调试,而不必再次清理回声。或者,如果您只打算在浏览器迭代测试中将其用于调试,则可直接使用Firebug。

您可以稍后将它们全部清理干净,或将其作为代码记录器使用,它应该在大多数大型应用程序中用于错误记录和报告指标。