条件语句的问题

Pro*_*ast 0 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.");
   } 
Run Code Online (Sandbox Code Playgroud)

Pas*_*TIN 5

您正在使用$api函数中调用的变量,但该变量未在任何位置定义.

所以,$api["Location"]不能拥有价值'a'- 这就是你永远得到的原因"Not from a".


注意:如果您有一个$api在函数外定义的变量,那么从该函数内部看不到它.

有关此内容的更多信息,请参阅本手册的" 变量范围"部分.


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

  • $api期望作为您的logsIn()函数的参数,
  • 当你调用它时,它会传递给该函数.

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