条件语句的问题

时间:2011-07-24 15:45:05

标签: php conditional if-statement

每次运行此代码时,只会写入"Not from a",无论位置是否为“a”。

function logsIn($dir, $account, $balance) {
   $d    = date("D F d Y - h:i A");
   $file = fopen("logs/$dir.txt", "a");

   if ($_SESSION['pass'] == "123") {
      if ($api["Location"] != "a")
         fwrite($file, "<span style='color:#FF0000;text-align:center';>Not from a.</span>");
      else
         fwrite($file, "From a.");
   } 

1 个答案:

答案 0 :(得分:5)

您在函数中使用了一个名为$api的变量,但该变量未在任何地方定义

因此,$api["Location"]的值不能为'a' - 这就是为什么你总是得到"Not from a"


注意:如果您的函数外部定义了$api变量,那么从该函数内部就看不到它。

有关此内容的详细信息,请参阅本手册的Variable scope部分。


作为解决方案,我想你可以修改你的代码:

  • $api需要logsIn()函数
  • 作为参数
  • 当你调用它时会传递给该函数。

您还可以使用global关键字在函数内部显示$api变量(如果它存在于您的函数之外),但它不是很好练习,因为它使你的函数依赖于外部变量。