красивые синтаксич. конструкции

  • Автор темы Автор темы Gas
  • Дата начала Дата начала

Gas

может по одной?
красивые синтаксич. конструкции

Прывет.

Сегодня где-то в форуме увидел совет вместо
$mas=mysql_fetch_array($result);
$id=$mas['id'];

и т.д.
делать
extract(mysql_fetch_array($result));
и чуть не обосрался от такой красоты. А то я всю жись юзал
list($id,...)=mysql_fetch_row($result);


Так вот, кто использует еще что-нибудь "ЭТАКОЕ", просьба написать в целях повышения skill'a.
 
1. в extract есть опасность примерно как в register_globals
2. не наглядно

поэтому считю эту конструкцию "плохой" и использовать не буду (чего, впрочем, раньше и не делал :) )

мне например травится вот такая конструкция дл инсерта в базу

PHP:
$db->query("insert into $table(". implode(", ", array_keys($data)) .") values (".implode("', '", array_values($data)).")");

где массив $data получен как данные из формы и из него удалены все ключи, которые не надо вставлять в базу, для этого есть еще объект-фильтр
 
1. не наглядно - согласен.

2. насчет опасности не понятно, может объяснишь?

3. list($id,....)=mysql_fetch_row($result); - лажа али нет?

Твоя конструкция хороша, базара нема.
 
Хмм.. Если данные проверять перед записью в БД то и extract(mysql_fetch_array($res)); безопасен ИМХО
если делать unset на всякие переменные, то register_globals тоже безопасны, как ты понимаешь :)

2. насчет опасности не понятно, может объяснишь?
почитай чем грозят register_globals
 
2 AnToXa

И все-же, чем безопаснее:
$mas=mysql_fetch_array($result);
$id=$mas['id'];

по сравнению c extract(mysql_fetch_array($res));

Даже если register_globals=on значения из базы заменят те
значения, которые были переданы GET'ом или я не прав?
 
1. совсем не обязательно делать $id = $mas['id']; можно и прям обращение к массиву писать

2. заменят. а прикинь там login/password из базы, которые зарегистрированы в сессии и они перезапишутся!!!!
 
антоха, лично я использую и тот метод, и другой.
Когда я работаю с паролей - никакого экстракта.
да и два поля меня не ломает писать.
Когда же вывожу таблицу с кучей полей - токда экстракт очень даже к месту.
В РНР действительно много вкусностей и удобностей.
чего бы ими не пользоваться?
 
Ладно, с extract'ом все ясно. Спасибо.

Может кто еще какие приколы использует?
 
Ну вот щас все кинутся приколы тебе вспоминать, чтобы ты крутью "своей" блястел по всем углам... Ты хочешь, чтобы тебе все тут быренько весь свой опыт выложили на блюдечке? =) хехе...
По-моему это как анекдоты: вспоминать бесполезно, когда понадобится - само всплывёт.
Можешь попредлагать разные ситуации, а тебе кто-нидь (кому ну совсем уж делать будет нечего), глядишь, и подскажет как это делается...
 
может быть суид твой топик за отдельные деньги к себе в подпись поместит :))) видишь рекламу продает
 
Su1d
Блин, да не заставляю ж я силой всех слать сюда свои наработки. Вдруг кому не жалко пусть напишет. И я не говорю о супер алгоритмах над которыми страдали неделями, а о небольших фишках. Вот AnToXa , например, сразу вспомнил, спасобо тебе, Брат.
 
Например такие: <?=$var;?> вместо <? echo $var; ?>
мне лично тоже интересно, время от времени в форуме что-нить этакое увидишь, порадуешься ;)
 
кстати, еще одна потенциальная проблема в extract. прикинь завтра ты сделаешь alter table и одно из названий полей в таблице совпадет со счетчиком цикла какого-нибудь!
вот и бессонная ночь отладки
 
2 Gas ты действительно лучше конкретнее тему предложи, и тогда тута будет хороший такой флейм :)
 
Автор оригинала: AnToXa
кстати, еще одна потенциальная проблема в extract. прикинь завтра ты сделаешь alter table и одно из названий полей в таблице совпадет со счетчиком цикла какого-нибудь!
вот и бессонная ночь отладки
Да ладно, найти ошибку дело нескольких минут если скрипт не ОГРОМНЫЙ.

Конкретнее тему предложить не могу, т.к. это может быть что угодно, а если мне нужно что-то конкретное то я скорее всего сделаю сам и не буду задавать вопросов. Просто если кто вспомнит что интересное (обычные вещи, но сделаные нестандартно) пусть чиркнет если не в лом.
 
Сверху