|
|
|
| Я не раз встречался с такими ситуациями, когда функции нужно было передавать очень много аргументов, но как я понимаю, это не очень правильно, нагружать функцию и делать ее более сложной. Вообще интерисует как правильно их вообще использовать. И еще хотелось узнать, нужно ли менять функции на методы в классе? Чесно говоря, я не очень умею пользоватся классами, создавать их, но знаю что в этом сила самого PHP. Чем собственно обычная функция отличиется от метода класса? | |
|
|
|
|
|
|
|
для: FireTiger
(16.02.2008 в 23:08)
| | Много аргументов в функции - верный признак плохого проектирования. К сожалению, в пхп таких функций навалом. Но это холивар)
Как правильно использовать функции написано в мануале)
По поводу замены функции на метод класса... если вы хотите заменить стандартную функцию на метод класса, то смысла в этом не много. А если вы спрашиваете вообще, стоит ли применять ООП, вместо структурного программирования, то это вопрос сложный. Ответа однозначного нет. Все зависит от задач.
Сила пхп в простоте. А поддержка ООП - бонус. Весомый, не спорю. Да и все сейчас переходят на ООП стиль. Но не понятно только зачем. Часто ООП только тормозит всю работу системы. Но далеко не всегда.
Метод отличается от функции тем, что для его вызова нужно либо обратиться к классу (если это статический метод), либо к объекту класса (любые другие методы).
Если вкратце, то ООП состоит из объектов и методов. Объекты описываются классами. Например, есть класс "стул". Он имеет четыре ножки и спинку. Это класс. Но стулья в жизни все разные. Они отличаются формой, материалами и пр. Каждый стул - это объект класса "стул".
Таким образом, объект - это такая фиговина, которая содержит локально, данные о себе. А методы - это по сути, функции, изменяющие состояния объектов. То есть, они меняют данные в объектах.
Функции же, меняют данные вообще.
Надеюсь, понятно объяснил. | |
|
|
|
|
|
|
|
для: SHAman
(17.02.2008 в 00:07)
| | Спасибо вам за такое подробное описание, разницу между функциями и методами понял, но как по мне, то я вижу смысл использовать ООП для того, чтобы просто напросто групировать функции в один "пакет" тем самым гарантируя, что не попадется одинакового имени. Но все же остается вопрос, если функции нужно передать много параметров, как от этого избавится? Ну было у меня например, нужно передать значение, ниже вставлять текст или выше, мне приходися передавать аргумент, по которому будет идти условие, вставлять выше или ниже...Но таких подобных параметров нужно передать много, как поступать? | |
|
|
|
|
|
|
|
для: FireTiger
(17.02.2008 в 08:13)
| | Сам только лишь поглядываю в сторону ООП, но запомнилась ключевая фраза:
"Если Ваш код содержит более 100 тыс. строк, тогда ООП пригодится". | |
|
|
|
|
|
|
|
для: FireTiger
(17.02.2008 в 08:13)
| | вариант 1 - передавайте их массивом.
используйте как можно больше глобальных переменных, не передавайте их никогда как аргументы.
вариант 2 - http://pl.php.net/manual/ru/function.func-get-args.php | |
|
|
|