2009-06-07 3 views
2

Я использую эту функцию, чтобы определить, следует ли мое заявление быть онлайн или оффлайн:Что случилось с этой функцией?

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

Однако, со значением параметра равным 0 в базе данных, и $online делает = «0», почему ошибка /offline.php не включен для тех, кто на уровне пользователя не 1?

Спасибо :)

ответ

7

Что $online, глобальная переменная? Если это так, вы должны сделать global $online, чтобы получить доступ к нему внутри функции. Прямо сейчас $online является значением по умолчанию null, которое не равно строке «0».

+0

$ online - глобальная переменная. Как сделать его глобальным для доступа к нему в функции? – bear

+0

Вы пишете глобальные $ онлайн в своей функции, прежде чем использовать $ online. Это означает, что $ online, поскольку он существует в вашей функции, относится к тому же, что и $ онлайн в глобальном масштабе. – chaos

+0

Спасибо. Сегодня я узнал что-то новое! – bear

1

«Хаос» имеет право на глобальные переменные. Но если вы не уверены, одним из способов отладки чего-то подобного является добавление выражений «echo» или «die» в разных местах, чтобы увидеть, что происходит в коде. Поместите один внутри первого оператора «if», чтобы увидеть, доходит ли он так далеко, а затем во втором выражении «if». Эхо значения переменных, которые вы тестируете, так что вы можете понять, почему условия не работают.

+0

Спасибо, я обычно отлаживаю, добавляя эхо: P – bear

1

К точке JW для отладки. Вместо того, чтобы засорять код с помощью эха, просто создайте быстрый класс, такой как Logger или Debug, который вы можете вызвать для записи сообщений в виде эхо. Или еще лучше использовать инструмент exisitng, такой как http://www.indelible.org/php/Log/guide.html. Это позволит вам отлаживать [FirePHP в Firefox] [2] и не нужно снова очищать эхо-заявления. Или просто используйте Firebug напрямую, если вы планируете использовать его для отладки в тесте итерации браузера.

Вы можете очистить их все позже или использовать в качестве регистратора кода, который должен быть в большинстве крупных приложений для регистрации ошибок и отчетов.

Смежные вопросы