Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > PHP трюки


Автор: Nicklasos 13.2.2010, 21:18
Всем привет.
Пытался поднять данную тему на гуглоответах, но результат нулевой, только глупые ответы.
(http://otvety.google.ru/otvety/thread?table=%2Fotvety%2F&tid=4e502cf64f7d3287)


Давайте будем выкладывать здесь разные php-трюки или интересные примеры кода.
Может кто-то знает тематический ресурс?

Ну например интересный пример свопа двух чисел:

Код

list($a, $b) = array($b, $a); 



P.S. Тема очень интересная, если подключатся люди бывалые и с опытом.
Тема не для рассуждений для чего это надо, пишите, если вам есть что написать!

Автор: Ипатьев 13.2.2010, 22:03
Осталось понять, зачем может понадобиться своп двух чисел. или не чисел.

Автор: segrey 13.2.2010, 22:16
Цитата(Ипатьев @  13.2.2010,  20:03 Найти цитируемый пост)
Осталось понять, зачем может понадобиться своп двух чисел. или не чисел. 

затем чтобы код потом никто не разобрал  smile 

Автор: skyboy 13.2.2010, 22:20
Цитата(Nicklasos @  13.2.2010,  20:18 Найти цитируемый пост)
 если подключатся люди бывалые и с опытом.

Цитата(Nicklasos @  13.2.2010,  20:18 Найти цитируемый пост)
Тема не для рассуждений для чего это надо

боюсь, взаимоисключающе.

Автор: Fortop 13.2.2010, 22:37
На выбор smile
Код

$a -= $b = -1 * $b + $a += $b;

Код

$a -= $b = ($a += $b) - $b;


Код

$a += $b;
$b = $a - $b;
$a -= $b;


Только на кой черт такое надо - загадка.

Автор: Nicklasos 13.2.2010, 22:50
Fortop, это обфускаторы какие-то smile Но примеры интересные, спасибо.

Вот пример строки, больше ли она 3-х символов:

Код

if(isset($str[2])) {
   echo 'Строка больше 3-х символов';
}

Автор: Fortop 13.2.2010, 23:01
Цитата(Nicklasos @  13.2.2010,  21:50 Найти цитируемый пост)
это обфускаторы какие-то

Вот именно, поэтому такой подход как привел я.

И вот такой подход
Цитата(Nicklasos @  13.2.2010,  21:50 Найти цитируемый пост)
Вот пример строки, больше ли она 3-х символов:
Код

if(isset($str[2])) {
   echo 'Строка больше 3-х символов';
}


Не рекомендуются к использованию

Автор: Nicklasos 13.2.2010, 23:09
Цитата(Fortop @ 13.2.2010,  23:01)
Не рекомендуются к использованию

Это да, но есть же действительно интересные и полезные примеры, которые не запутывают, а наоборот проясняют код.
Вот например этот пример свопа через list(), очень даже хорошо смотрится, все таки из книги Дж. Шлосснейгла.

Автор: awdev 13.2.2010, 23:11
Блин причем тут рекомендуется или не рекомендуется. ТС четко описал: 
Цитата
Давайте будем выкладывать здесь разные php-трюки или интересные примеры кода.
Может кто-то знает тематический ресурс?
Мне вот понравился своп.

И дело тут не в том, надо или нет, это прикольно и в этом тема! Не будьте сильно унылы это печально

Автор: nerezus 14.2.2010, 18:16
Цитата

Ну например интересный пример свопа двух чисел:
 Мне кажется, вам следует для начала получше изучить синтаксис, чтобы "трюки" начали казаться вам обычным кодом.
P.S. Трюкачей и прочих личностей, генерирующих ###код, и не способных обосновать свою точку зрения ненавижу.

Цитата

Это да, но есть же действительно интересные и полезные примеры, которые не запутывают, а наоборот проясняют код.
 Да. И они описаны в синтаксисе. Учите.

Окей, раз тема так популярна, то пара трюков.
1) Изучить ООП. Офигенный трюк.
2) Получить опыт комерческих разработок хотя бы на $5k+. Трюк еще круче.

Автор: Nicklasos 15.2.2010, 00:12
Цитата(nerezus @ 14.2.2010,  18:16)
Окей, раз тема так популярна, то пара трюков.
1) Изучить ООП. Офигенный трюк.
2) Получить опыт комерческих разработок хотя бы на $5k+. Трюк еще круче.

Как можно говорить о человеке такое, совсем его не зная?
Я днями на пролет читаю книги, такие как Дж. Шлосснейгл Профессиональное программирование на PHP и Бьерн Страуструп Язык программирования С++.
К тому же имею почти 2 года опыта работы php-программистом.

Но я же не об этом говорю, везде где я просил людей поделится интересным опытом кодинга слышу что-то наподобие: "Эй ты, сопляк, иди подучись, не страдай херней!". 
Неужели люди совсем не хотят поделиться опытом, какими-нить интересными небольшими классами? Все только и тыкают в оптимизацию.

Вот интересно, если я создам тему, что-то вроде "Тотальная оптимизация кода на PHP. Делимся примерами", то люди буду говорит, что ну нафик все не оптимизируешь, пиши лучше красиво, использую интересные конструкции и приведут кучу своих примеров?

Добавлено через 6 минут и 28 секунд
Кстати, на ВК все тоже заунывные 
http://vkontakte.ru/topic-26_22304514

Добавлено через 7 минут и 53 секунды
О, я таки нашел интересные тематические ресурсы:
http://www.snippy.ru/
ну и конечно
http://ruseller.com/

Автор: nerezus 15.2.2010, 01:18
Цитата

Я днями на пролет читаю книги, такие как Дж. Шлосснейгл Профессиональное программирование на PHP и Бьерн Страуструп Язык программирования С++.
 Вторая книга связана с PHP не более, чем журнал Мурзилка.
Однако про первую соглашусь: единственная русскоязычная книга для профи.

Цитата

Как можно говорить о человеке такое, совсем его не зная?
 Я в прошлом посте указал причины. Первые 2 моих строки - это 2 причины.

Цитата

Неужели люди совсем не хотят поделиться опытом, какими-нить интересными небольшими классами?
 Спрашивайте конкретно вещи, которые интересуют - расскажем.

Автор: skyboy 15.2.2010, 01:34

Цитата(Nicklasos @  14.2.2010,  23:12 Найти цитируемый пост)
Но я же не об этом говорю, везде где я просил людей поделится интересным опытом кодинга слышу что-то наподобие: "Эй ты, сопляк, иди подучись, не страдай херней!". 

да, в самом деле, достаточно неприятная ситуация. я приношу свои извинения на свой тон в начале и приятно удивлен твоей выдержкой.
только я и в самом деле считаю(я такой не один; точнее будет сказать "я согласен с тем, что ..."), что трюки наподобие префиксного инкремента запутывают код. понимаю изначальную порочность категорических суждений, так что даже вот так лучше: "любые неожиданные для меня и непонятные с первого взгляда конструкции будет во мне подозрение в собственной необразованности или же в выпендрежности автора", что в любом случае тормозит изучение кода. и именно поэтому не есть гуд.
кроме того, раз уж "трюк" по определению что-то неожиданное(пусть и может показаться красивым), то как следствие, удивлять оно будет многих. кроме того, неожиданные конструкции, к тому же, использующие особенности обработки, не отображенные в документации, рано или поздно могут "сломаться". вот этим-то оно и опасно, трюкачество.
если ты это отлично понимаешь, и тобой движет только "стремление к красоте" и тебе интересно посмотреть эдакую "выставку неожиданного кода", то мне жаль за свое вмешательство.
если же интересует, чем неприятна конструкция, наподобие приведенной тобой, постараюсь поделиться собственным пониманием "красивого кода"(я не настолько высокомерен, чтоб считать собственный код идеалом, нет smile )

Автор: Nicklasos 15.2.2010, 01:38
Просто есть желание создать какой-нить тематический ресурс, но наверное тема будет не очень популярна, что ж, придется записывать все в блокнот.
Ладно, в любом случаем спасибо.

Автор: Fortop 15.2.2010, 02:52
Nicklasos, если ты создашь ресурс где будет простой и понятный код для очень сложных вещей - то популярность ресурсу обеспечена.
А искать "трюки"... право же не стоит.

Автор: MoLeX 15.2.2010, 06:55
Цитата(segrey @  13.2.2010,  22:16 Найти цитируемый пост)
затем чтобы код потом никто не разобрал

и что тут такого в чем не разобраться?


Nicklasos, http://forum.vingrad.ru/forum/topic-254519.html




Автор: segrey 15.2.2010, 11:14
Цитата(MoLeX @  15.2.2010,  04:55 Найти цитируемый пост)
и что тут такого в чем не разобраться?

тут ничего, и применение в коде только осчастливит отладку.

Автор: Nicklasos 15.2.2010, 12:45
Цитата(Fortop @ 15.2.2010,  02:52)
Nicklasos, если ты создашь ресурс где будет простой и понятный код для очень сложных вещей - то популярность ресурсу обеспечена.
А искать "трюки"... право же не стоит.

Ну как бы "трюки" я выразился по аналогии с книгой "PHP. Трюки" Харингтона.
Ресурсов на подобную тематику полно, но слишком много воды и отступлений вольных, а хочется мяса, чтоб каждая тема была с листингом "интересного" кода, например: Гибкий роутер для MVC или что-то вроде этого. Не просто обычные примеры делать, а только толковые решения, но опыта маловато для такого. 

Автор: awers 15.2.2010, 13:18
Nicklasos, к примеру я уже лет 5 не видел "трюков" на пхп. Всё что приходится видеть - кривые решения. 
Чем больше опыта, тем меньше вещей кажутся трюками. Конечно не всё можно поделить на чёрное и белое, но трюками обычно называют то что не правильно (в данном контексте можно читать как "не читабельно").

Автор: Nicklasos 15.2.2010, 14:54
Цитата(awers @ 15.2.2010,  13:18)
Nicklasos, к примеру я уже лет 5 не видел "трюков" на пхп. Всё что приходится видеть - кривые решения. 
Чем больше опыта, тем меньше вещей кажутся трюками. Конечно не всё можно поделить на чёрное и белое, но трюками обычно называют то что не правильно (в данном контексте можно читать как "не читабельно").

А вот и не всегда, Харингтон трактует трюки (hacks) как приемы, которые наоборот облегчают жизнь.

Автор: awers 15.2.2010, 15:25
Цитата(Nicklasos @  15.2.2010,  15:54 Найти цитируемый пост)
А вот и не всегда, Харингтон трактует трюки (hacks) как приемы, которые наоборот облегчают жизнь.

Вменяемый и читабельный код облегчает жизнь, особенно когда в команде 10+ человек.

Автор: Fortop 15.2.2010, 15:36
Nicklasos, вот тебе прием облегчающий жизнь.
http://forum.vingrad.ru/index.php?showtopic=291333&view=findpost&p=2097299

Автор: IZ@TOP 15.2.2010, 15:36
http://php.net -  я беру их там.

Автор: nerezus 16.2.2010, 11:07
Цитата

А вот и не всегда, Харингтон трактует трюки (hacks) как приемы, которые наоборот облегчают жизнь.
 Приведи примеры трюков.

Автор: Nicklasos 16.2.2010, 11:45
Цитата(nerezus @ 16.2.2010,  11:07)
Цитата

А вот и не всегда, Харингтон трактует трюки (hacks) как приемы, которые наоборот облегчают жизнь.
 Приведи примеры трюков.

Ну самый первый "трюк" - это класс-обёртка для js-библиотеки, которая делает прикольные всплывающие подсказки.

Автор: MoLeX 16.2.2010, 12:00
ну если ты это считаешь трюком...

Автор: Nicklasos 16.2.2010, 12:04
Ну так самый первый пример...

Добавлено через 6 минут и 34 секунды
И собственно что такого удивительного?
В книге Дж. Шлосснейгла первой главой идет "форматирование кода", как лучше отступы в коде делать...

Автор: MoLeX 16.2.2010, 12:22
Цитата(Nicklasos @  16.2.2010,  12:04 Найти цитируемый пост)
как лучше отступы в коде делать...

а это тут причем?

Добавлено через 53 секунды
Nicklasos, такое ощущение что вы выиграли подряд на пиар этого автора, каждое 3-тье ваше сообщение содержит его фамилию.

Автор: Nicklasos 16.2.2010, 12:36
Цитата(MoLeX @ 16.2.2010,  12:22)
Цитата(Nicklasos @  16.2.2010,  12:04 Найти цитируемый пост)
как лучше отступы в коде делать...

а это тут причем?

Добавлено @ 12:23
Nicklasos, такое ощущение что вы выиграли подряд на пиар этого автора, каждое 3-тье ваше сообщение содержит его фамилию.

Ну нравится мне эта книга.

Ладно, тема уже с первых минут зашла в тупик, пора закрываться.

Автор: awers 16.2.2010, 12:43
Ещё раз хочу сказать, что трюков не бывает, бывает мало опыта

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)