PHP: dirname и Define, что происходит?

Тема в разделе "Как сделать...", создана пользователем Q_BASIC, 31 янв 2015.

Статус темы:
Закрыта.
  1. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    352
    Симпатии:
    223
    Случайно заметил.

    Вот код:
    PHP:
    define('DIR'dirname(__FILE__).'/templates/new');

    echo 
    'dirname(): '.dirname(__FILE__).'<br />DIR: '.DIR.'<br />';
    Директория файла:
    /home/user/site.ru/public_html/how/

    И вот что выводит код:
    Код:
    dirname(): /home/user/site.ru/public_html/how/templates/new
    DIR: /home/user/site.ru/public_html/how/
    Почему в константе DIR содержится не
    /home/user/site.ru/public_html/how/templates/new/templates/new

    А
    /home/user/site.ru/public_html/how/

    То есть, текст не добавляется, а наоборот, обрезается. Что его так обрезает? dirname или define?

    И с чего он так обрезается
     
  2. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    883
    Симпатии:
    540
    Есть мысль что DIR уже объявлена и её присвоено '/home/user/site.ru/public_html/how/'
     
  3. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    352
    Симпатии:
    223
    Ага, только что нашел, то что она уже объявлена
     
  4. ArtyGrand

    ArtyGrand Постоялец

    Регистр.:
    6 июн 2009
    Сообщения:
    81
    Симпатии:
    37
    E_NOTICE : type 8 -- Constant DIR already defined -- at line 3 //- если переопределять

    включай отображение ошибок
     
Статус темы:
Закрыта.