On Fri, Sep 28, 2007 at 02:02:00PM +0400, Alexey Karagodov wrote:
> Виктор, это не баг, а фича ... Игорь, а если в дочернем контексте
> указать $document_root=;
> что получится?
> или $document_root=''; например
$document_root нельзя переопределить через set. По крайней мере, сейчас.
> 28.09.07, Igor Sysoev <is@xxxxxxxxxxxxx> написал(а):
> >
> > On Fri, Sep 28, 2007 at 01:16:38PM +0400, Виктор Вислобоков wrote:
> >
> > > > Переменные не наследуются. Наследуются директивы.
> > > > А значение переменных существует только на время выполнения запроса.
> > > >
> > >
> > > Но по факту это означает наследование переменных.
> > > Судите сами.
> > > В глобальном контексте устанавливается переменная $document_root
> > > Потом мы переходим в локальный контекст (server), где эта переменная не
> > > установлена. Тогда её значение берётся из глобальной секции. А почему?
> > > Потому что оно наследуется. В противном случае в локальном контексте
> > > переменная должна была бы быть неопределена. Ещё раз: в локальном
> > контексте
> > > значение переменной оказывается определено, хотя специально её никто не
> > > определял. Откуда же взялось это значение? Оно УНАСЛЕДОВАНО из
> > глобального
> > > контекста.
> > >
> > > Возможно вы правы, касательно терминологии, но сути это не меняет.
> > >
> > > Разумеется всё сказанное - моё IMHO. Автор - вы. Решать как это будет
> > > работать вам. У нас разные взгляды на данную проблему, но это нормально
> > :)
> >
> > $document_root - одна из немногих переменных, значение которой явно
> > зависит
> > от директивы (root в данном случае). Поэтому и создаётся впечатление,
> > что она наследуется. Например, $remote_addr зависит только от клиента
> > и говорить о наследовании здесь бессмысленно. И большинство переменных -
> > такие же.
> >
> >
> > --
> > Игорь Сысоев
> > http://sysoev.ru
> >
> >
--
Игорь Сысоев
http://sysoev.ru