imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 05.04.2004, 17:35     # 21
mmaaxx
Junior Member
 
Регистрация: 08.10.2003
Сообщения: 98

mmaaxx Известность не заставит себя ждать
Мда, я просто увидев ${"year[$i]"}, сразу подумал (и ответил) что нужно (или по крайней мере желательно) выносить "сложные" конструкции переменных (а-ля $c->var, $a['var'] ) из строки, пхп не во всех слуйчаях их коректно находит.
Тот что я запостил у меня работает на ура (и выдайёт то же что и твой пост.

А вообще конечно ты прав на все 100% что там вообще ненужна никакая ${}.

Добавлено через 3 минуты:
Да и вообще имхо удобнее, правильнее и бысрее (по выполнению) общаться к переменным имя которой в строке через $_GLOBALS[$myvar] а не ${$myvar}. Заодно и путаницы с массивами не будет (ну или по крайней мере не должно быть).

Последний раз редактировалось mmaaxx; 05.04.2004 в 17:42.
mmaaxx вне форума  
Старый 05.04.2004, 18:58     # 22
Psionic Vision
Full Member
 
Аватар для Psionic Vision
 
Регистрация: 05.02.2002
Адрес: Underground
Сообщения: 2 110

Psionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собой
Кто нибудь мне может внятно объяснить, когда нужно ${} , а когда просто $?
Psionic Vision вне форума  
Старый 05.04.2004, 19:04     # 23
mmaaxx
Junior Member
 
Регистрация: 08.10.2003
Сообщения: 98

mmaaxx Известность не заставит себя ждать
Neo
Когда не знаешь точного названия переменной:
Не нужно: ${"var1"} , проще и быстрее $var1
Нужно: ${"my_".$i."_var"} , сдесь мы не знаем названия переменной и поэтому юзаем ${} (но правильнее в таких слуйчаях (как было сказаны выше) использовать массив типа $my_var[$i]).

Просто вместо ${"my_".$i."_var"}, с таким-же успехом можно использовать $_GLOBALS["my_".$i."_var"] (массив через который можно доступиться ко всем переменным. Для наявность можешь сделать:
echo "<pre>";
print_r($_GLOBALS);
echo "</pre>";

Последний раз редактировалось mmaaxx; 05.04.2004 в 19:06.
mmaaxx вне форума  
Старый 05.04.2004, 19:20     # 24
Gike
сошел
 
Регистрация: 03.06.2002
Сообщения: 662

Gike Реально крут(а)Gike Реально крут(а)Gike Реально крут(а)Gike Реально крут(а)
а не проще использовать формулу?

$yr_min=2003
$yr_max=2xxx

$sum=($yr_max^2+$yr_max-$yr_min^2-$yr_min)/2

или

$sum=($yr_max-$yr_min)*($yr_max+$yr_min+1)/2

арифметическая прогрессия...

Последний раз редактировалось Gike; 05.04.2004 в 19:23.
Gike вне форума  
Старый 05.04.2004, 22:10     # 25
Psionic Vision
Full Member
 
Аватар для Psionic Vision
 
Регистрация: 05.02.2002
Адрес: Underground
Сообщения: 2 110

Psionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собой
Gike
а смысл? формула непонятная
Psionic Vision вне форума  
Старый 05.04.2004, 22:29     # 26
sky7
Member
 
Аватар для sky7
 
Регистрация: 02.05.2003
Адрес: Бельгия
Сообщения: 201

sky7 Путь к славе только начался
Цитата:
Neo:
можно ли это как то оптимизировать
Ну, для начала везде вместо sprintf, для индексации массива я бы использовал числа вместо строк. ( все sprintf ( ...... $i) заменить на $i ) Так и работать быстрее будет, и код куда читабельнее.

Во-вторых, вместо переменных $year200x -я бы использовал массив. Так и писать и поддерживать код намного проще. В остальном.. да тут и не так много кода (;

Да.. а ошибку подобную сообщению от 05-04-2004 01:08 я комментировал в своём
ответе от 04-04-2004 00:27.

Последний раз редактировалось sky7; 05.04.2004 в 22:39.
sky7 вне форума  
Старый 05.04.2004, 22:41     # 27
Psionic Vision
Full Member
 
Аватар для Psionic Vision
 
Регистрация: 05.02.2002
Адрес: Underground
Сообщения: 2 110

Psionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собой
Цитата:
sky7:
все sprintf ( ...... $i) заменить на $i
но ведь мне нужно чтобы там нолик впереди был.

Цитата:
sky7:
$year200x -я бы
тут ты наверно прав.. ща пойду переделывать

Добавлено через 4 минуты:
а как получить значение последнего элемента массива?
Psionic Vision вне форума  
Старый 05.04.2004, 22:42     # 28
sky7
Member
 
Аватар для sky7
 
Регистрация: 02.05.2003
Адрес: Бельгия
Сообщения: 201

sky7 Путь к славе только начался
Цитата:
Neo:
но ведь мне нужно чтобы там нолик впереди был.
А зачем? Лучше этот нолик добавлять при выводе на HTML( если так уж надо), а внутри держать как число. А принимая из HTML приводить обратно к числу. Но... это моё имхо (;
sky7 вне форума  
Старый 05.04.2004, 22:45     # 29
mmaaxx
Junior Member
 
Регистрация: 08.10.2003
Сообщения: 98

mmaaxx Известность не заставит себя ждать
Neo
Цитата:
но ведь мне нужно чтобы там нолик впереди был
зачем ? если потом будешь выводить ключи массива и там будет нужен 0, то поставь sprintf там, так будет правильнее.
mmaaxx вне форума  
Старый 05.04.2004, 22:49     # 30
sky7
Member
 
Аватар для sky7
 
Регистрация: 02.05.2003
Адрес: Бельгия
Сообщения: 201

sky7 Путь к славе только начался
mmaaxx


PS Сорри за флуд...
sky7 вне форума  
Старый 05.04.2004, 23:43     # 31
Psionic Vision
Full Member
 
Аватар для Psionic Vision
 
Регистрация: 05.02.2002
Адрес: Underground
Сообщения: 2 110

Psionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собой
mmaaxx
зачем - смотри здесь: http://shabash.dreamsee.ru/xron.html - блок навигации по выпускам. для красоты, короче.

sky7
А чего, тут без меня пиво пьют? Нее я не согласен. Щас ваще уйду в монастырь .
mmaaxx


Добавлено через 3 минуты:
Ах да, я же забыл зачем пришел.

Как сложить ВСЕ значения ВСЕХ ключей массива?

Добавлено через 7 минут:
А знаю вот так
foreach ($years as $temp) $total_currnum += $temp;
Psionic Vision вне форума  
Старый 06.04.2004, 10:59     # 32
mmaaxx
Junior Member
 
Регистрация: 08.10.2003
Сообщения: 98

mmaaxx Известность не заставит себя ждать
Neo
sky7


Neo
Ты наверно имел введу ссумировать все значения масива (массив: $array[$key]=>$value), поскольку ключи сумируют так:
if(!empty($a)) foreach($a as $key=>$value) $key_sum+=$key;
Не забываем про проверку на пустоту, поскольку foreach будет ругаться, если масив пустой.
mmaaxx вне форума  
Старый 06.04.2004, 13:35     # 33
is_absent
::VIP::
 
Аватар для is_absent
 
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417

is_absent Молодецis_absent Молодецis_absent Молодец
mmaaxx
хм.. не надо на непустоту. надо на "массивность" проверять is_array вместо empty... $a = 1; тоже не пустая
__________________
Nunc est bibendum
is_absent вне форума  
Старый 06.04.2004, 14:55     # 34
mmaaxx
Junior Member
 
Регистрация: 08.10.2003
Сообщения: 98

mmaaxx Известность не заставит себя ждать
@_is_absent
совершенно верно
mmaaxx вне форума  
Старый 07.04.2004, 13:31     # 35
Gike
сошел
 
Регистрация: 03.06.2002
Сообщения: 662

Gike Реально крут(а)Gike Реально крут(а)Gike Реально крут(а)Gike Реально крут(а)
Neo
Почитай про сумму арифметической прогрессии ....
Gike вне форума  
Старый 07.04.2004, 17:41     # 36
Psionic Vision
Full Member
 
Аватар для Psionic Vision
 
Регистрация: 05.02.2002
Адрес: Underground
Сообщения: 2 110

Psionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собой
Всем спасибо

Gike
а зачем здесь ар.прогрессия если можно сделать гораздо проще без таких сложных формул?
Psionic Vision вне форума  
Старый 07.04.2004, 17:49     # 37
mmaaxx
Junior Member
 
Регистрация: 08.10.2003
Сообщения: 98

mmaaxx Известность не заставит себя ждать
Если Gike прав, и тебе действительно нужна прогрессия, то по формуле, хоть она и сложная, считаться будет быстрее чем цыклом (особенно если считать нужно много).
mmaaxx вне форума  
Старый 07.04.2004, 18:00     # 38
sky7
Member
 
Аватар для sky7
 
Регистрация: 02.05.2003
Адрес: Бельгия
Сообщения: 201

sky7 Путь к славе только начался
Neo
Так с формулой эффективнее. Если куда можно формулу какую впихнуть - намного быстрей прога работает, чем то-же самое циклами вычислять. Представь, что у тебя накопилось 10 000 выпусков, что-б их пересчитать, ты используешь цикл ( по 14 ) с одним арифметическим действием. Итого: (10 000/*выпусков*/ / 14/*в год*/) /*циклов*/ * 1 /*действие*/ ~= 80 /*операциям */ А формулой - у тебя 4 операции, не зависимо от количества выпусков. Разница в этом примере - 20 раз, а чем больше выпусков - тем больше разница.
А после этого представь что у тебя бешенная посещаемоть( скажем 1000 человек в минуту запрашивают этот скрипт ) и прикинь насколько разной будет нагрузка на сервер.

Добавлено через 1 минуту:
Я не говорю, что та или иная формула подходит в этом конкретном примере - это сам думай... но если можно что-то посчитать формулой - то лучше так и сделать

Добавлено через 1 минуту:
mmaaxx
И снова одинаково отвечаем Ну и впрямь у моряков мысли сходятся
sky7 вне форума  
Старый 08.04.2004, 09:29     # 39
is_absent
::VIP::
 
Аватар для is_absent
 
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417

is_absent Молодецis_absent Молодецis_absent Молодец
а почему все решили что сумма аривметической прогрессии сложная формула?
если мне не изменяет память, то S(n) = (a1 + an)*n/2 или a1 + d*(n - 1)/2
a1 - первый член последовательности, an - последний. d - разность.
__________________
Nunc est bibendum
is_absent вне форума  
Старый 08.04.2004, 14:18     # 40
sky7
Member
 
Аватар для sky7
 
Регистрация: 02.05.2003
Адрес: Бельгия
Сообщения: 201

sky7 Путь к славе только начался
Да, в принципе формула простая, но для человека не имевшего дело с математикой - не тривиальная. Хотя, ты прав .. с этой формулой может даже и проще разобраться чем с циклами...
sky7 вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 02:20.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.