![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| webevt |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 235 Регистрация: 5.5.2005 Репутация: нет Всего: 3 |
Допустим, существует переменная(или массив) с определенными данными внутри. Как достать ее уникальный номер? ID должен основываться на содержимом этой переменной и не должен быть рандомным(если переменные одинаковые, то и ID`ы у них будут одинаковые).
Сейчас ID получаю таким образом:
Опасаюсь за скорость и правильность такой конструкции...Может есть более элегантный способ? |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Задавая абстрактный вопрос ("допустим, есть переменная..."), не стоит надеяться на конкретный ответ.
Допустим, за скорость и правильность беспокоиться не нужно. |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Если у тебя это объект, то можешь пользоваться spl_object_hash()
Хотя и твой вариант приемлем. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| flashaa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 796 Регистрация: 7.3.2006 Репутация: 19 Всего: 25 |
webevt, ваше решение неплохо решает вами же поставленную задачу. Можно поинтересоваться, зачем это?
|
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Я не webevt, но вариантов может быть масса. У меня был случай, когда необходимо было манипулировать списком сущностей полученных в результате агрегации нескольких таблиц. Да тот же простой грид с запоминанием отмеченной строки, когда строка не является самостоятельным объектом в базе. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| webevt |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 235 Регистрация: 5.5.2005 Репутация: нет Всего: 3 |
flashaa, для кэширования, в шаблонизаторе.
При каждом запуске парсинга какого-либо шаблона, проверяется контрольная сумма(3 массива содержат все переменные, циклы и условные блоки - они составляют контрольную сумму) всех переменных шаблона. Если контр. сумма не поменялась - то вместо парсинга шаблона отдаются данные из кэша, а если поменялась - то парсится шаблон и создается новый кэш. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Единственная трабла, которая мне в голову пришла - md5 - медленная функция, так что если "шаблон" достаточно длинный, то вычисляться может достаточно долго... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Насчет скорости.
Generated 500hash(s) in 768.20117282867 seconds parsed 1 449 999 500 bytes P4 2GHz 512Mb Дома еще проверю на более быстрой. Вот исходный код Генерим набор файлов (500штук) - долго
Генерим хэши
Добавлено через 36 секунд Так что можно не заморачиваться насчет скорости. -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
| webevt |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 235 Регистрация: 5.5.2005 Репутация: нет Всего: 3 |
Fortop, спасибо огромное за анализ
Вопрос закрыт. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |