Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Библиотека самых бесполезных кусков кода, или как не стоит писать на РНР 
:(
    Опции темы
Muchenik
Дата 28.8.2006, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 27.10.2005

Репутация: нет
Всего: 5




Просто, для того чтобы  что то делать, нужно четко себе представлять, что делает та или иная операция. При отсутствии  того, люди пишут курьезный код. 
Цитата

if (unlink("../news_photos/smalls/".$filename_old) == TRUE) {
     unlink("../news_photos/smalls/".$filename_old);
 }


unlink - удаляет файл и возвращает TRUE в случае успешного завершения. 

т.е. в данном случае, программист пытается удалить файл повторно. 

PM MAIL ICQ   Вверх
Rock
Дата 28.8.2006, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 264
Регистрация: 13.1.2005
Где: Краснодар

Репутация: нет
Всего: 1



я вкурсе, но начинающим это может быть неизвестно, ведь все-таки появился такой код, следовательно появится ещё раз, следовательно надо объяснить почему не надо так делать.
А ведь в понимании того человека возможно и было четкое представление, на основе которого код написан был smile
Код

if (unlink("../news_photos/smalls/".$filename_old) == TRUE) {
     unlink("../news_photos/smalls/".$filename_old);
 }

сначало проверка возможно ли это, а потом уже действие smile

Это сообщение отредактировал(а) Rock - 28.8.2006, 20:32
PM MAIL ICQ   Вверх
smartov
Дата 29.8.2006, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 2
Всего: 259



Rock
Цитата(Rock @  28.8.2006,  19:27 Найти цитируемый пост)
 надо объяснить почему не надо так делать

Не прав ты, камрад. Это функция библиотечная и элементарная как 2х2
Любой новичок/начинающий/незнающий/прочий должен СНАЧАЛА ПРОЧТИТАТЬ МАНУАЛ, особенно после ознакомления с этой темой. RTFM, как говорится!
А если он будет продолжать делать точно так-же, только втихую, - то он просто ламер - т.е. человек, нежелающий учиться.


Это сообщение отредактировал(а) smartov - 29.8.2006, 11:30
PM MAIL   Вверх
Rock
Дата 29.8.2006, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 264
Регистрация: 13.1.2005
Где: Краснодар

Репутация: нет
Всего: 1



smartov, эту функцию я просто как пример привел, смысл то более глобальный, чем объяснение библиотечных функций
PM MAIL ICQ   Вверх
smartov
Дата 29.8.2006, 16:07 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 2
Всего: 259



Rock, ну значит пример был неудачный. А обьяснять... кому. Друг-другу чтоль? Если спросят - обьясним.
PM MAIL   Вверх
faost
Дата 29.8.2006, 16:30 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 5.11.2004

Репутация: нет
Всего: 2



из библиотеки самых бесполезных кусков кода топик превращается в библиотеку самого бесполезного флуда =)
--------------------
Если у вас нет проблем, значит вы уже умерли
PM MAIL   Вверх
IZ@TOP
Дата 29.8.2006, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Модератор: прекращаем пустую болтовню!

Товарищи! Если выкладывате какой-то код, хотя бы слегка комментируйте в нем происходящее! Так действительно будет лучше.

Кто-то спрашивал на счет шорт тегов: не используйте это безобразие! Я час копался - почему у меня не видно файла, который сгенерирован для экспорта (расширением html) и, с XML контентом. 
Угадайте почему? Потому что кто-то поставил хандлер РНР на html файлы + на сервере в конфиге были разрешены шорт теги! В итоге РНР матерится трехэтажным матом на XML и мы получаем пустую страницу, ибо (для тех кто не в курсе) XML файл начинается с объявления <?xml!

Добавлено @ 16:48 
Код

if (unlink("../news_photos/smalls/".$filename_old) == TRUE) {
     unlink("../news_photos/smalls/".$filename_old);
}


Наверное человек просто хотел проверить существование файла. Из этого делаем вывод что нужно было делать так:

Код

if (is_file("../news_photos/smalls/".$filename_old)) {
     unlink("../news_photos/smalls/".$filename_old);
}


Добавлено @ 16:51 
Замечательно, нашел тему просто переполненную безобразием называемым "иф адом")) http://forum.vingrad.ru/index.php?showtopic=109772



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
smartov
Дата 29.8.2006, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 2
Всего: 259



IZ@TOP, не так страшен иф ад как текст с картинкой до Тега html......
PM MAIL   Вверх
Всемогущий
Дата 30.8.2006, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 25.6.2006
Где: Челябинск

Репутация: 1
Всего: 13



Привет всем
на форуме видел
Цитата

Код

if () {
/*допустим здесь 300 сторк кода*/
}
else {
/*и здесь 300 сторк кода*/
}


верно говорят трудно разбираться.
А чем можно заменить


--------------------
Цитата(smartov @  16.1.2007,  13:26 Найти цитируемый пост)
Видел я PHP код, который пишут наСильники, никогда на php не писавшие  :D  То еще зрелище. Все пытаются сделать руками и через ж (как в С привыкли). Все пытаются память освобождать итд итп. 
PM MAIL ICQ   Вверх
skyboy
Дата 30.8.2006, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



разбить на функции, к примеру
PM MAIL   Вверх
Alone
Дата 30.8.2006, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

Репутация: нет
Всего: 6



Это называется рефакторинг кода.


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
smartov
Дата 30.8.2006, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 2
Всего: 259



Всемогущий
тут дейтсивтельно подходов много.
Можно как подсказал товарищ, разбить на фукнции.
Первые триста строк - одна функция. Вторые (по else) - вторая.
Это самый простой и в общем-то неправильный вариант. 
Потому-что я считаю и мой опыт это подтверждает, что можно всегда избежать ситуаций в которых иф 300 строк элс - 300 строк.
Наверняка можно построить логику по другому. Многое наверняка общее. Многое наверняка можно написать по-другому.
PM MAIL   Вверх
skyboy
Дата 30.8.2006, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



Цитата(smartov @  30.8.2006,  10:13 Найти цитируемый пост)
Первые триста строк - одна функция. Вторые (по else) - вторая.

необязательно так страшно. интуиция мне подсказывает, что почти наверняка 50% кода в обоих ветвях могут быть объединены в одну функцию. возможно - с разными параметрами. хотя, конечно, вариант
Цитата(smartov @  30.8.2006,  10:13 Найти цитируемый пост)
избежать ситуаций в которых иф 300 строк элс - 300 строк

правильнее.
PM MAIL   Вверх
smartov
Дата 30.8.2006, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 2
Всего: 259



Цитата(skyboy @  30.8.2006,  13:40 Найти цитируемый пост)
 интуиция мне подсказывает, что почти наверняка 50% кода в обоих ветвях могут быть объединены в одну функцию

Мне тоже, но реально кода в глаза я не видел...
PM MAIL   Вверх
Vaulter
Дата 1.9.2006, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: нет
Всего: 22



Код

$tm = time();
$query = "insert into dec_orders (status, tema, doptreb, cat, type_work, year_sd, file_up, cena_end, email_z, type_sms, sms_kod) values ('8'";
for ($c=0; $c<$num; $c++) {
  if ($data[$c] == "бухучёт, статистика") $bla = 1;
  elseif ($data[$c] == "иностранные языки") $bla = 2;
  elseif ($data[$c] == "история") $bla = 3;
  elseif ($data[$c] == "медицина") $bla = 4;
  elseif ($data[$c] == "педагогика") $bla = 5;
  elseif ($data[$c] == "политология") $bla = 6;
  elseif ($data[$c] == "программирование") $bla = 7;
  elseif ($data[$c] == "психология") $bla = 8;
  elseif ($data[$c] == "разное") $bla = 9;
  elseif ($data[$c] == "русский язык и литература") $bla = 10;
  elseif ($data[$c] == "социология") $bla = 11;
  elseif ($data[$c] == "технические") $bla = 12;
  elseif ($data[$c] == "философия") $bla = 13;
  elseif ($data[$c] == "финансы и кредит") $bla = 14;
  elseif ($data[$c] == "химия и физика") $bla = 15;
  elseif ($data[$c] == "экономика") $bla = 16;
  elseif ($data[$c] == "юриспруденция") $bla = 17;
  elseif ($data[$c] == "реферат") $bla = 1;
  elseif ($data[$c] == "курсовая") $bla = 2;
  elseif ($data[$c] == "диплом") $bla = 3;
  elseif ($data[$c] == "диссертация") $bla = 4;
  elseif ($data[$c] == "другой") $bla = 5;
  else $bla = 0;
echo "<td>$data[$c]</td>";
$data[$c] = untag($data[$c]);
 if ($bla != 0) { $query .=", '$bla'"; $bla = 0; }
 else $query .=", '$data[$c]'";
}
$query .=")";



--------------------
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Избранное | Следующая тема »


 




[ Время генерации скрипта: 0.1144 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.