Вы не зашли.
Главная » PHP » Использование пользовательских функций
#1. AntiKiller Off (0)
Участник
2008.08.02 00:12
Назрел такой вопрос... замедляют ли работу скрипта использование (частое) пользовательских функций? Точнее, как сильно замедляют?

Вот пример, часть типичной гостевой книги, MySQL, упрощённый вариант, без навигации:
Код:
$sql = mysql_query("SELECT (*) FROM `guest` ORDER BY `time` DESC ;");
while ($message_user = mysql_fetch_array($req))
{
switch ($message_user['sex'])
{
case "m":
echo '<img src="../images/m.gif" alt=""/>&nbsp;';
break;
case "zh":
echo '<img src="../images/f.gif" alt=""/>&nbsp;';
break;
}
switch ($message_user['level'])
{
case 1:
echo 'админ';
case 2:
/*и так далее выводим в зависимости от записи в базе определённую должность*/
}
}
#2. AntiKiller Off (0)
Участник
2008.08.02 00:12
.....Будет проще для отображения статуса, пола, положения ONLINE/OFFLINE, аватара в конце концов создать функции, которые можно будет использовать и в форуме, в чате, в блогах...но сильно ли использование этих функций будет тормозить скрипт?...

Пример:


Код:
function GetStatus ($level)
{
$level = intval($level);
if ($level === 2) return " <span style=\"color:#EA6000\">[Модер]</span>";
elseif ($level === 6) return " <span style=\"color:#F23600\">[Старший модер]</span>";
elseif ($level === 7) return " <span style=\"color:red\">[Админ]</span>";
elseif ($level === 1) return " <span style=\"color:#84BB44\">[Киллер]</span>";
}
 
function GetSex ($sex)
{
$level = intval($level);
if ($level === 0) return " <span style=\"color:#000\">Мужик!</span>";
elseif ($level === 1) return " <span style=\"color:#f00\">Дама</span>";
}
$sql = mysql_query("SELECT (*) FROM `guest` ORDER BY `time` DESC ;");
while ($message_user = mysql_fetch_array($req))
{
echo GetSex ($message_user['sex'])
echo GetStatus ($message_user['level']) ;
}
Добавлено спустя   9 минут  34 секунды:
поправка: везде while ($message_user = mysql_fetch_array($sql)) а не while ($message_user = mysql_fetch_array($req))

---------------------------------------------------------------------

Вот ещё. Я смотред wapmod downloads, он целиком и полностью сделан на функциях... это и есть ООП?.. а то я не врублю))
Тот скрипт(wapmod downloads) я очень долго разбирал, пытался понять что к чему, я скрипт подобного типа видел впервые, но когда разобрался...мм его просто было удовольствием модернизировать и улучшать, я добавил туда возможность чтения .txt файлов, теперь его можно использовать и как библиотеку... но не в этом дело. Он довольно медленный. Медленный, хотя скриншоты берёт из "кэша"... это из-за того что большинство скрипта - функции? Но благодаря этим функциям появляется огроооомная функциональность(сорри за тавтологию)... и приходиться жертвовать скоростью, да?...
#3. Gemorroj Off (107)
Administrator
2008.08.02 03:03
нет, ООП это не функции, это - подход к программированию, образ мышления чтоли.
то, что ты называешь функцией, в ООП называется методом.
А вообще функции это потрясающая вещь, да, они работают медленне чем если бы просто писать функциями PHP (ООП работает еще медленней к слову).
Не забывай что большую роль в производительности играег грамотное построение БД и как следствие грамотное использование SQL запросов. Следует стараться избегать делать SQL запросы в циклах. А так же чаще использовать оператор LIMIT (если SELECT, то вообще всегда). Это я к тому, почему может тормозить, скажем, приведенный выше код. На счет wapmod_downloads я уже и не помню его кода, но тормоза совсем не обязательно могут быть от обилия пользовательских функций.
Но благодаря этим функциям появляется огроооомная функциональность(сорри за тавтологию)... и приходиться жертвовать скоростью, да?...
именно так) но чем больше будет становиться код, тем легче его будет модифицировать. ООП вроде бы еще дальше в этом направлении продвинулся... по крайней мере так многие утверждают. Я лично оч люблю имнно такой функциональный подход, а не ООП.
#4. AntiKilеr
Гость
2008.08.02 03:03
Спасибо за развернутый ответsmile А ты почему не напишешь собственную CMS?
#5. Gemorroj Off (107)
Administrator
2008.08.02 04:04
а зачем? я не хочу. а на данный момент и времени все равно уже нет.
#6. endrju Off (0)
Участник
2008.08.02 16:04
Gemorroj написал:
а зачем? я не хочу. а на данный момент и времени все равно уже нет.
a кoдиш eщo?дa блин c чeвo нaчaть учить php?ну и cкoкa ты eвo нaпpимep учил?
ТA НУ ЩO Я ТУТ НAПИШУ
#7. Gemorroj Off (107)
Administrator
2008.08.02 17:05
я сейчас из-за компа не вылазию. на том что заработаю в инете, на то и живу, поэтому сейчас занимаюсь только платными проектами.
#8. AntiKiller Off (0)
Участник
2008.08.06 03:03
Учить нужно скачав 3 книжки по пыху и взяв в руки скрипт гостевой книги от Гига. Я во всяком случае так начинал учить
#9. Gemorroj Off (107)
Administrator
2008.08.06 11:11
У этой гости бага серьезная есть кстати. Там данные храняться разделенные символами ||| кажется, и используя их, при написаеии нового сообщения, можно, испортить БД.
#10. AntiKiller Off (0)
Участник
2008.08.06 20:08
Разделяются ||
Этот знак экранируется знаком "!", точнее, заменяется им. str_replace ('|','!',$msg);
во всяком случае это в самой последней версии так
Страниц: 1 2 Все
Главная
WEB
PunBB Mod v0.6.2
0.015 s