Правильная подстановка переменных
Листинг 13.10. Правильная подстановка переменных
<1хр> 
 
<setvar bar="$setbar" /> 
 <!-- Значение setbar присваивается bar--> 
 
<putvar name="bar" /> 
 <!-- Вывод значения bar --> 
 
<lxp> 
 
 В этом блоке LXP тег <setvar> 
 присваивает значение переменной setbar новой переменной с именем bar. Подстановка в данном случае вполне допустима, поскольку она выполняется в теге LXP. 
Поскольку в приведенном URL-адресе переменной setbar присваивается значение foo, это новое значение будет присвоено переменной bar.
 Тег <putvar> 
 является примером второго правила подстановки в LXP. Некоторые теги (такие, как <putvar> 
) для выполнения своих функций должны получать имена переменных. Вспомните, что знаки $ и @ не входят в имена переменных; они всего лишь используются для подстановки значений вместо имен. 
 На первый взгляд кажется, что тег <putvar> 
 из листинга 13.10 должен выглядеть так:
 <putvar name="$bar" /> 
 <!-- Вывод значения bar --> 
 
Однако в действительности это приведет к тому, что в значение атрибута name будет подставлено значение переменной bar. А так как переменная bar равна foo, то в конечном счете LXP попытается вывести переменную с именем foo.
 Чтобы определить, нужно ли использовать подстановочные символы в каждом конкретном случае, проще всего разобраться в том, что же делает тег. Если атрибут должен заменяться значением переменной, необходимо произвести подстановку с символом $. Если же в атрибуте просто задается имя переменной (как в теге <putvar> 
), подстановка не нужна. 
 Если литерал $ требуется использовать в кавычках, его следует экранировать. Для этого в строку включаются два знака $ подряд (например, <setvar pri ce="$$99 . 95" /> 
). 
 Примечание 1
Примечание 1
Если при подстановке переменная не найдена, LXP ищет cookie с указанным именем. Если cookie существует, вместо имени подставляется его значение.
