За последние 24 часа нас посетили 53908 программистов и 1715 роботов. Сейчас ищут 804 программиста ...

class not found, проблема с include_once?

Тема в разделе "PHP для новичков", создана пользователем hellhammer, 19 авг 2008.

  1. hellhammer

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

    С нами с:
    2 сен 2007
    Сообщения:
    42
    Симпатии:
    0
    Здравствуйте!
    Есть 2 класса, допустим, class2 extends class1. Находятся в разных файлах. Пишу:
    Код (Text):
    1. include_once('class1.php')
    2. class class2 extends class1
    3. .........
    Php выдаёт ошибку class class1 not found.
    Проверяю по file_exists - да, файл существует. А подключаться, значит, не хочет.
    Если скопировать class1 в файл с class2 - само собой, работает.
    Ошибок, что невозможно подключить файл - тоже нет.
    set_include_path пробовал.

    Что с этим можно сделать?
     
  2. hellhammer

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

    С нами с:
    2 сен 2007
    Сообщения:
    42
    Симпатии:
    0
    вывел get_included_files - всё нормально там.....
     
  3. shreck

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

    С нами с:
    7 авг 2007
    Сообщения:
    479
    Симпатии:
    0
    Адрес:
    Россия, Саратов
    А сам класс 'class1' называется? Или файл только?
     
  4. hellhammer

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

    С нами с:
    2 сен 2007
    Сообщения:
    42
    Симпатии:
    0
    class1, конечно.
    ну, это я для примера сказал.
    с именами точно всё в порядке.
     
  5. shreck

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

    С нами с:
    7 авг 2007
    Сообщения:
    479
    Симпатии:
    0
    Адрес:
    Россия, Саратов
    Покажи код
     
  6. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    require_once поставь, вместо include.
     
  7. hellhammer

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

    С нами с:
    2 сен 2007
    Сообщения:
    42
    Симпатии:
    0
    shreck
    а чего там показывать? оба модуля целиком, зачем? :) суть явно не в них, если он сам класс не видит.
    вот как есть в топике, так и есть...

    Sergey89
    пробовал, не помогает...


    кстати, если запускаю из zend'а - проблемы нет.
    проблема возникает только в браузере.
     
  8. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    А нету ли ещё файлов в inlude_path с таким именем?
     
  9. hellhammer

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

    С нами с:
    2 сен 2007
    Сообщения:
    42
    Симпатии:
    0
    Нет.
    Интересно, что в get_included_files нужный файл есть, а в get_declared_classes содержащегося в нём класса нет.
    Ничего не понимаю...
     
  10. Anonymous

    Anonymous Guest

    значит, проблема в классе.
     
  11. hellhammer

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

    С нами с:
    2 сен 2007
    Сообщения:
    42
    Симпатии:
    0
    тогда почему всё в порядке, если класс-родитель скопировать в файл класса-потомка, ничего не меняя?
     
  12. Borigor

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

    С нами с:
    20 авг 2008
    Сообщения:
    1
    Симпатии:
    0
    возможно, Ваши php-файлы содержат пары php-тегов
    Код (Text):
    1. <? ... ?>
    попробуйте применять
    Код (Text):
    1. <?php ... ?>
     
  13. hellhammer

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

    С нами с:
    2 сен 2007
    Сообщения:
    42
    Симпатии:
    0
    Действительно, <? ... ?> стояло. Не заметил.
    Спасибо!