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