Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

10 930 Posts in 6 305 Topics- by 1 216 Members - Latest Member: santini862

24 September 2020, 09:11
Select Language English | Russian ru | German
Main PageIRC Client KVIrc forumRussian talksСкриптинг (Moderator: runkoff)Названия переменных
Pages: [1] 2
Print
Author Topic: Названия переменных  (Read 28086 times)
0 Members and 1 Guest are viewing this topic.
man
Новичок
*

Репутация: 2
Gender: Male
Posts: 21


View Profile
« on: 3 September 2007, 14:29 »

можно ли(и как) создать переменную, с названием например ника?
Logged
Maximusya
Глобальный модератор
*****

Репутация: 49
Gender: Male
Posts: 343



View Profile
« Reply #1 on: 3 September 2007, 16:10 »

А по-точнее, что ты хочешь сделать?
Создать переменную %man?
Создать переменную %<ник_который_является_параметром_функции>?
Logged
LFIdnl
Новичок
*

Репутация: 7
Posts: 29


View Profile
« Reply #2 on: 3 September 2007, 18:01 »

насколько я понял он хочет сделать чтобы например при вызове какого-нить события параметр(например $0) можно было засунуть в название переменной типа %$0 ну конечно так нельзя насколько я понимаю. Используй хэши (hash).
Logged
runkoff
Модератор
*****

Репутация: 22
Gender: Male
Posts: 130


847905
View Profile WWW Email
« Reply #3 on: 4 September 2007, 12:46 »

массивы те в помощь
%a{%nickname} = что хотел то и присвой

перебрать такой массив
foreach(%ikey, $keys(%a)){
  echo для %ikey задано значение %a{%ikey}
}

ну а уж функцию написать, возвращающую для ника значение, как два пальца  ...
делай алиас и в нем
return %Твоймассив{$0}
Logged

Maximusya
Глобальный модератор
*****

Репутация: 49
Gender: Male
Posts: 343



View Profile
« Reply #4 on: 4 September 2007, 13:49 »

Телепаты среди нас   Cheesy

runkoff, то, что ты привел здесь - не массивы, а хеши
Logged
runkoff
Модератор
*****

Репутация: 22
Gender: Male
Posts: 130


847905
View Profile WWW Email
« Reply #5 on: 4 September 2007, 15:30 »

runkoff, то, что ты привел здесь - не массивы, а хеши
=) да пофиг, я когда то, не помню точно, наверно пытаясь вникнуть в php, наткнулся на описание массивов индексами которых служили строки, там их обзывали как "Ассоциативные массивы", это было мое первое знакомство с подобными штуками. И в памяти отложилось. Ну раз по квирковски правильно хэши, то пусть будут хэши.

Кстати справочку щас поднял, тут тоже они упоминаются как: ... In literature hashes are also called "associative arrays" ...  Wink
Logged

man
Новичок
*

Репутация: 2
Gender: Male
Posts: 21


View Profile
« Reply #6 on: 6 September 2007, 13:08 »

решение найдено:

eval "\%$0=value"
Logged
runkoff
Модератор
*****

Репутация: 22
Gender: Male
Posts: 130


847905
View Profile WWW Email
« Reply #7 on: 6 September 2007, 13:19 »

решение найдено:

eval "\%$0=value"
а терь объясните мне, как вы к этой переменной обращаться будете? тоже через eval?
Logged

Alexey
Администратор
*****

Репутация: 45
Posts: 203


View Profile Email
« Reply #8 on: 6 September 2007, 18:31 »

И что если в нике есть символы []{}/\ ?
Logged
noLove
Глобальный модератор
*****

Репутация: 17
Posts: 181



View Profile
« Reply #9 on: 10 September 2007, 12:58 »

отстреливать таких чатлан надо... чтобы не было....
Logged

Alvis
Новичок
*

Репутация: 4
Posts: 29


View Profile
« Reply #10 on: 10 September 2007, 22:06 »

по аналогии с tcl скриптами для eggdrop такие символы можно предварительно заменять на допустимые для переменных
Logged
man
Новичок
*

Репутация: 2
Gender: Male
Posts: 21


View Profile
« Reply #11 on: 11 September 2007, 08:38 »

к этой переменной так и обращаться, т.н. если ник man, то переменная %man соответствено
а вот насчет []{}/\ чет неподумал, т.к. пока не было случаев, и эт пока проблема
Logged
runkoff
Модератор
*****

Репутация: 22
Gender: Male
Posts: 130


847905
View Profile WWW Email
« Reply #12 on: 11 September 2007, 11:05 »

к этой переменной так и обращаться, т.н. если ник man, то переменная %man соответствено
значит я твоей задачи до кончнца не понял.
если ты заранее знаешь имя ника, то собственно зачем eval? назвай переменную %man и все.
а вот если ты не знаешь имя ника, и назвал ее eval "\%$0"? то откуда ты можешь знать что тебе в коде надо писать слово %man? вобщем покажи код как у тебя это работает
Logged

man
Новичок
*

Репутация: 2
Gender: Male
Posts: 21


View Profile
« Reply #13 on: 13 September 2007, 13:28 »

это надо было мне когда например заходит на канал пользователь, и надо создать переменную по нику заходящего, то есть я точно незнаю пользователь с каким ником зайдет, поэтому и использовал:
eval "\%$0=некая_переменная"
но сейчас больше склоняюсь к предложеному выше методу - использовать $hash, т.к. можно добавить любую переменную под любым названием ключа.
Logged
Alexey
Администратор
*****

Репутация: 45
Posts: 203


View Profile Email
« Reply #14 on: 13 September 2007, 14:01 »

Более того, это гораздо быстрей будет работать:)
Logged
Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic