За последние 24 часа нас посетили 217159 программистов и 2197 роботов. Сейчас ищут 2255 программистов ...

непонятки с наследованием, когда классы в разных файлах

Тема в разделе "PHP для новичков", создана пользователем Koc, 30 янв 2009.

  1. Koc

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

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    есть файл
    file1.php:

    PHP:
    1.  
    2. <?php
    3. class A
    4. {
    5.     function f1()
    6.     {
    7.         include_once'folders/folder/file2.php';
    8.         $a = new B();
    9.     }
    10. }
    11.  
    12. class B extends C
    13. {
    14.  
    15. }
    16.  
    17.  
    file2.php:
    PHP:
    1.  
    2. <?php
    3. class C
    4. {
    5. }
    6.  
    компилятор каже, что класс B не существует и его объект не может быть создан. Если я помещу класс B в file2.php, то все будет ок. Но помещать его туда нельзя, это нарушит логику. Как быть? Почему так происходит? Классы-то, блин, в доном файле, но один не видит другого.

    вопрос №2: как обратиться к константе класа-детеныша, окромя как ИмяКласса::Константа?
     
  2. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Файл то подключается только при вызове метода f1.

    p.s. для классов давно уже пора использовать autoloading.
     
  3. Koc

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

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    та в целом более-менее понял ошибку. Автолоиданг не хочется использовать. Чем-то он мне не нравится.