Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как пишутся функции?
 
 автор: simbel   (13.07.2007 в 17:33)   письмо автору
 
 

Я изучаю пхп по книге. В ней приводится множество различных примеров функций. Я попробовал написать свою функцию, но даже не понял с чего начать? Есть ли какие-то рекомендации, методы по этому вопросу?

Если я правильно понимаю, в функции заключают часто повторяющийся код программы. Т.е. я, например, пишу код не используя функции (только стандартные) и замечаю, что есть куски кода которые часто повторяются. Эти куски я должен оформить как функцию? И потом вызывать их когда нужно? Так?

Или как-то по-другому? Посоветуйте новичку, пожалуйста...

   
 
 автор: Ziq   (13.07.2007 в 17:49)   письмо автору
 
   для: simbel   (13.07.2007 в 17:33)
 

Если я правильно понимаю, в функции заключают часто повторяющийся код программы. Т.е. я, например, пишу код не используя функции (только стандартные) и замечаю, что есть куски кода которые часто повторяются. Эти куски я должен оформить как функцию? И потом вызывать их когда нужно? Так?

В принципе да. Но функции надо создавать не когда уже видишь, что куски кода повторяются, а когда только проектируешь что-либо.

Бывают случаи, когда использование функции является обязательным, например, рекурсия. Но со временем сам поймешь.

   
 
 автор: simbel   (13.07.2007 в 17:55)   письмо автору
 
   для: Ziq   (13.07.2007 в 17:49)
 

Но функции надо создавать не когда уже видишь, что куски кода повторяются, а когда только проектируешь что-либ.

Тогда такой вопрос. Можно ли где-нибудь в онлайне почитать по вопросу проектирования движка или скрипта. Может кто занет. Киньте ссылочку. Пожалуйста.

   
 
 автор: Ziq   (13.07.2007 в 17:59)   письмо автору
 
   для: simbel   (13.07.2007 в 17:55)
 

Честно говоря не знаю где про это можно почитать, но посоветую просто попробовать разработать какой-нибудь простенький скрипт (например гостевую книгу). На месте и разберетесь. Пару дней придется конечно помучиться, но потом начнете понимать что к чему.

   
 
 автор: Trianon   (13.07.2007 в 18:32)   письмо автору
 
   для: simbel   (13.07.2007 в 17:33)
 

>Если я правильно понимаю, в функции заключают часто повторяющийся код программы.
Т.е. я, например, пишу код не используя функции (только стандартные) и замечаю, что есть куски кода которые часто повторяются. Эти куски я должен оформить как функцию? И потом вызывать их когда нужно? Так?

Правильно понимаете.

Если Вы видите что некоторые одинаковые (или очень похожие вычисления) нужно производить в разных местах (возможно - над разными входными данными), Вы выносите их в функцию.

Создавая функцию, Вы даете ей имя, определяющее суть заключенных в ней вычислений, и в в скобках перечисляете параметры, от которых может зависеть результат.
Эти параметры - переменные, которые будут существовать только в процессе выпоолнения функции при очередном её вызове, и будут видны только внутри функции.
Затем в фигурных скобрах пишется набор выполняемых операторов.
Результат можно вернуть оператором return.


function parallel_resistance($r1, $r2)
{
   $rr = ($r1 * $r2) / ($r1 + $r2);
   return $rr;
}

   
 
 автор: Ralph   (13.07.2007 в 19:51)   письмо автору
 
   для: Trianon   (13.07.2007 в 18:32)
 

А еще для написания функций полезно изучить вопрос области видимости переменных (global,static...)

   
 
 автор: Trianon   (13.07.2007 в 22:15)   письмо автору
 
   для: Ralph   (13.07.2007 в 19:51)
 

А вот это на первых порах изучать крайне вредно.
Область видимости переменных должна быть ограничена функцией.
Применение глобальных областей видимости допустимо лишь при столь веских причинах, что автор такого скрипта даже задумываться не будет что такое функции и с чем их едят.

   
 
 автор: Ralph   (14.07.2007 в 08:14)   письмо автору
 
   для: Trianon   (13.07.2007 в 22:15)
 

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

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования