Переменные

Переменные могут хранить данные следующих типов:
·строка (string);  
·число (int/double);  
·истина/ложь;  
·хеш (ассоциативный массив);  
·класс объектов;  
·объект класса (в т.ч. пользовательского);  
·код;  
·выражение.  

Для использования переменных не требуется их заранее объявлять.

В зависимости от того, что будет содержать переменная, для присвоения ей значения используются различные типы скобок:

$имя_переменной[строка]
переменной присваивается строковое значение (объект класса string) или произвольный объект некоторого класса

$имя_переменной(выражение)
переменной присваивается число или результат математического выражения

$имя_переменной{код}
переменной присваивается фрагмент кода, который будет выполнен при обращении к переменной



Для получения значения переменных используется обращение к имени переменной:

$имя_переменной - получение значения переменной

Примеры
Код
Результат
$string[2+2]
$string 

2+2
$number(2*2)
$number


4

$i(0)
$code{$i}
$i(1)
$code


1
$i(0)
$string[$i]
$i(1)
$string

0


В качестве части имени может быть использовано…

…значение другой переменной:
$superman[value of superman variable]
$part[
man]
$super$part
Возвратит: value of superman variable

$name[
picture]
${name}.gif
Возвратит строку picture.gif, а не значение поля gif объекта picture.

…результат работы кода:
$field.[b^eval(2+3)]
Возвратит значение поля b5 объекта field.


User comments:

G_Z 22.09.2016 18:16

Стоит иметь в виду, что неразрывный пробел не считается пробельным символом и может как использоваться в именах методов и переменных, так и приводить к трудноуловимых ошибкам с именами переменных.
В таких случаях стоит обрамлять имена переменных фигурными скобками:
${var}

http://www.parser.ru/forum/?id=83721


Ike 01.04.2006 19:02

также следует сказать о том что в квадратных скобках может содержаться название переменной в виде переменной.
$name1[name_content]
$[name1][name2_content]


VictorSmirnov 21.10.2003 19:24

Я не нашел про работу с переменными, когда в имени содержится точка.
Думаю, в этом разделе будет уместно написать примерно следущее.

Имя переменной может содержать точку. Например: auth.email.
В таком случае при обращении к переменной нужно заключать
имя в прямоугольные скобки. Например
Получить значение переменной $[auth.email].
Присвоить значение $[auth.email](10) или $[auth.email][victor@uwc.ru]
Если написать $auth.email Парсер воспримет это как обращение
к ключу email хэша $auth.
Аналогично, если имя поля класса содержит точку, нужно имя заключать
в скобки. Например, $form:[auth.email].

Такие переменные используются в классе auth.p в примерах.


In order to add comments you must register.
Copyright © 1997–2021 Art. Lebedev Studio | http://www.artlebedev.ru Дата обновления: 23.02.2011