За последние 24 часа нас посетили 16576 программистов и 1648 роботов. Сейчас ищут 1368 программистов ...

Ошибка о неопределенной переменной.

Тема в разделе "Вопросы от блондинок", создана пользователем Sundro, 16 янв 2011.

  1. Sundro

    Sundro Активный пользователь

    С нами с:
    18 ноя 2010
    Сообщения:
    18
    Симпатии:
    0
    Есть такой код:
    <?php
    //hit_counter04.php
    $counter_file = "./count.dat";
    if(!($fp = fopen($counter_file, "r"))) die ("Невозможно открыть файл $counter_file.");
    while (!feof($fp))
    $counter .= fgetc($fp);
    $counter = (int) $counter;
    fclose($fp);
    $counter++;
    echo "Вы – посетитель № $counter.";
    $fp = fopen($counter_file, "w");
    fwrite($fp, $counter);
    fclose($fp);
    ?>
    При выполнении скрипта с включенным отображением ошибки появляется Notice: Undefined variable: counter in C:\www\tm\php\hit_counter2.php on line 6

    Но почему переменная не определена если ее определили тут $counter .= fgetc($fp);

    PS Пример взят из книги по которой изучаю язык
     
  2. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Sundro
    это тоже самое что $counter = $counter . fgetc($fp);
     
  3. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    .= - это конкатенация, а не определение. определение =
     
  4. Sundro

    Sundro Активный пользователь

    С нами с:
    18 ноя 2010
    Сообщения:
    18
    Симпатии:
    0
    Да но разве когда мы присоеденили к $counter, fgetc($fp) переменная $counter тем самым автоматически не создалась( определилась)?

    Еще маленький вопросик если можно. Почему после конструкции while нет фигурных кавычек ? Что в данном случае считать телом цикла ? Код после слова while ?
     
  5. Sundro

    Sundro Активный пользователь

    С нами с:
    18 ноя 2010
    Сообщения:
    18
    Симпатии:
    0
    Получается что мы присоединяем к переменной $counter строку хотя ее не существует а потом присваиваем этой же переменной то что получилось ? Но тогда как такой код работает тогда ?
     
  6. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Sundro
    вот так "Notice: Undefined variable: counter" :D
     
  7. Sundro

    Sundro Активный пользователь

    С нами с:
    18 ноя 2010
    Сообщения:
    18
    Симпатии:
    0
    Точнее и не ответить=)
     
  8. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    "Notice: Undefined variable: cunt" :DD
     
  9. Jampire

    Jampire Активный пользователь

    С нами с:
    22 авг 2009
    Сообщения:
    181
    Симпатии:
    0
    Адрес:
    Гомель
    Присваивается значение по умолчанию: $counter = "";
    Одна первая строка после while.
     
  10. Devzirom

    Devzirom Активный пользователь

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    Поправочка. Всё что до знака ";"
     
  11. Sundro

    Sundro Активный пользователь

    С нами с:
    18 ноя 2010
    Сообщения:
    18
    Симпатии:
    0
    Спасибо всем за помощь! Сам бы я еще не скоро разобрался.