parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

ООП, помогите разобраться

AL 26.01.2006 23:04

Здравствуйте!
Раньше всегда использовал классы для разделения пространств имен.
Решил попробовать написать настоящий класс на Parser3. Ради тренировки сделал примитивный класс для генерации <select>
Класс
@CLASS
select

@create[param]
$array[$param.array]
$name[$param.name]
$key[$param.key]
$value[$param.value]

@write[]
<select name="$name">
^array.menu{
<option value="${array.$value}">${array.$key}</option>
}
</select>
Вызов:
$array[^table::sql{SELECT id, rus, eng FROM options WHERE class='1'}]
$param[
	$.array[$array]
	$.name[name]
	$.key[rus]
	$.value[id]
]

$obj[^select::create[$param]]
^obj.write[]
Метод выведет несколько <option> с параметрами из бд.

Вопрос такой:
когда я пытался сделать, на ум сразу пришел такой вариант:
@create[param]
$select:array[$param.array]
$select:name[$param.name]
$select:key[$param.key]
$select:value[$param.value]
Т.е. $select:array - по-идеи глобальная переменная для класса.

Вопрос такой:
1. В первом варианте мы задаем глобальные переменные для всего класса?
2. Если в @write[] добавить $var[abc] эта переменная будет видна только в методе write?