Переменные и объекты LXP
Переменной называется изменяемое значение в памяти, доступ к которому осуществляется по имени. Имя требуется для идентификации и последующего использования того значения, которое оно представляет. Конкретные возможности переменной зависят от тега LXP.
В LXP также реализована особая разновидность структуры данных, называемая объектом. Объект LXP обычно используется для логического объединения нескольких взаимосвязанных переменных под общим именем. Конкретная переменная, к которой вы обращаетесь в объекте LXP, определяется либо уточняющим числовым или текстовым индексом в квадратных скобках (например, ехапр1е[0]), либо именем переменной через точку (например, for.count).
Концепция объектов LXP напоминает программные концепции массивов и объектов в традиционных языках программирования, хотя объекты LXP устроены гораздо проще. В сущности, различия между переменными и объектами сводятся к простому синтаксису ссылок на значения. Ссылка на переменную представляет собой простое имя (например, my_value), а ссылка на объект состоит из имени и уточнения (например, my_value[0], my_value[l] или my_value.size).
С точки зрения программиста переменные и объекты имеют глобальную область видимости. Это означает, что после присваивания значения переменная или объект становятся доступными во всем документе, а также во вложенных документах.
Правила формирования имен
Имена переменных LXP состоят из следующих символов:
- буквы латинского алфавита (a-z, A-Z);
- цифры (0-9);
- символ подчеркивания (_).
Полные имена объектов LXP состоят из следующих символов:
- буквы латинского алфавита (a-z, A-Z);
- цифры (0-9);
- символ подчеркивания (_);
- точка (.);
- квадратные скобки ([ ]).
Хотя для индексации больше характерны числа – поскольку они используются и массивах CGI (см. подраздел "Массивы CGI" в этом разделе), в квадратных скобках за именем объекта могут следовать любые допустимые символы (например, pseudo_array [example]).
В процессе лексического разбора атрибутов тега LXP некоторые специальные символы интерпретируются как признак подстановки значения переменной прямо в имя или значение атрибута (дополнительная информация приведена в разделе "Лексический разбор тегов"). К числу этих символов относится знак $ для переменных и знак @ для объектов.
Обязательно поймите очень важное обстоятельство: хотя специальные символы иногда применяются для подстановки значений переменных в атрибуты тегов, они не являются частью значения переменной и не заменяют литеральное имя переменной или объекта в других контекстах.
Использование переменных и объектов
Значение переменной можно вывести в любой точке блока LXP при помощи тега <putvar>. Синтаксис тега <putvar> (переменная – имя переменной, значение которой требуется вывести):
<putvar name="переменная" />
Теги <setvar> и <setvars> присваивают значения переменным. Синтаксис:
<setvar переменндя="значение" /> <setvars переменная1="значение!" переменная2="значение2" […] />
Теги <putvar> и <setvar> позволяют выводить и присваивать значения не только переменным, но и объектам.
Примечание
Помните, что точка (.) и квадратные скобки ([ ]) в теге <setvar> означают, что значение присваивается не простой переменной, а объекту. Таким образом, при последующей подстановке этого значения вместо знака $ должен использоваться знак @.