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

Форум PHP

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

 

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

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

тема: Как правильно использовать функции?
 
 автор: FireTiger   (16.02.2008 в 23:08)   письмо автору
 
 

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

   
 
 автор: SHAman   (17.02.2008 в 00:07)   письмо автору
 
   для: FireTiger   (16.02.2008 в 23:08)
 

Много аргументов в функции - верный признак плохого проектирования. К сожалению, в пхп таких функций навалом. Но это холивар)

Как правильно использовать функции написано в мануале)

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

Сила пхп в простоте. А поддержка ООП - бонус. Весомый, не спорю. Да и все сейчас переходят на ООП стиль. Но не понятно только зачем. Часто ООП только тормозит всю работу системы. Но далеко не всегда.

Метод отличается от функции тем, что для его вызова нужно либо обратиться к классу (если это статический метод), либо к объекту класса (любые другие методы).

Если вкратце, то ООП состоит из объектов и методов. Объекты описываются классами. Например, есть класс "стул". Он имеет четыре ножки и спинку. Это класс. Но стулья в жизни все разные. Они отличаются формой, материалами и пр. Каждый стул - это объект класса "стул".

Таким образом, объект - это такая фиговина, которая содержит локально, данные о себе. А методы - это по сути, функции, изменяющие состояния объектов. То есть, они меняют данные в объектах.

Функции же, меняют данные вообще.

Надеюсь, понятно объяснил.

   
 
 автор: FireTiger   (17.02.2008 в 08:13)   письмо автору
 
   для: SHAman   (17.02.2008 в 00:07)
 

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

   
 
 автор: ipic   (17.02.2008 в 14:18)   письмо автору
 
   для: FireTiger   (17.02.2008 в 08:13)
 

Сам только лишь поглядываю в сторону ООП, но запомнилась ключевая фраза:
"Если Ваш код содержит более 100 тыс. строк, тогда ООП пригодится".

   
 
 автор: Lstasss   (17.02.2008 в 14:51)   письмо автору
 
   для: FireTiger   (17.02.2008 в 08:13)
 

вариант 1 - передавайте их массивом.
используйте как можно больше глобальных переменных, не передавайте их никогда как аргументы.
вариант 2 - http://pl.php.net/manual/ru/function.func-get-args.php

   
Rambler's Top100
вверх

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