Проблема с условными утверждениями - PullRequest
0 голосов
/ 24 июля 2011

Каждый раз, когда я запускаю этот код, пишется только "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 Ответ

5 голосов
/ 24 июля 2011

Вы используете переменную с именем $api в своей функции, но эта переменная нигде не определена .

Итак, $api["Location"] не может иметь значение 'a' - поэтому вы всегда получаете "Not from a".


Примечание. Если у вас есть переменная $api, определенная вне вашей функции, то она не будет видна внутри этой функции.

Для получения дополнительной информации об этом вам следует ознакомиться с разделом Variable данного руководства.


В качестве решения, я полагаю, вы могли бы изменить свой код так:

  • $api ожидается как параметр вашей logsIn() функции,
  • И передается этой функции при вызове.

Вы также можете сделать $api переменную (если она существует вне вашей функции) видимой изнутри функции, используя ключевое слово global - но это не так хорошая практика, поскольку она делает вашу функцию зависимой от внешней переменной.

...