Переменные


Переменные могут хранить данные следующих типов:
· строка (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:

Ike 01 апреля 2006 19:02

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


VictorSmirnov 21 октября 2003 19:24

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

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

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

    Поддержать сайт на родительском проекте КГБ