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

Форум PHP

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

 

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

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

тема: ООП и обычные функции
 
 автор: ck   (28.11.2005 в 04:00)   письмо автору
 
 

Попытался разобраться хотя бы в вопросе "что такое ООП". Для этого прочел статью по указанному адресу. Вся эта история работает, но одного я так и не понял:
в чем преимущество такого метода перед простым созданием функций? Ведь
1)объем кода значительно вырос,
2)содержи файл "rect.php" простую функцию - для дальнейшей работы бы мало что измнилось. Пожалуй даже писать в дальнейшем

echo area($h, $w); 
echo perimetr($h, $w);

, а не

$rec = new Rec($h, $w);
echo $rec->area();
echo $rec->perimetr();

Ну, во всяком случае, не сложнее.
3)Функции точно так же можно, раз написав, использовать, когда понадобится.

В чем же преимущество? Конечно, проблема не в нужности-ненужности ООП, а в моем недопонимании. Тем сильнее хочется понять.
Большое спасибо всем.

   
 
 автор: codexomega   (28.11.2005 в 06:49)   письмо автору
 
   для: ck   (28.11.2005 в 04:00)
 

ООП позволяет создавать объекты со свойствами и функциями присущими только им.
В дальнейшем, этими объектами можно манипулировать.
Класс - это модель, форма, из которой создаются копии объектов.
Удобно и ясно что к чему.
Создали вы например прямоугольник, для него написали функции, такие как определение площади и периметра. Вдруг понадобилось в скором будущем сделать расчеты и вместо того чтобы копаться в полузабытом коде выискивая нужную функцию, возвращаетесь к объекту "прямоугольник".
Можно создать сразу несколько прямоугольников, задать каждому разные длины сторон, потом сравнить какой из них объемнее.
Еще, функция ограниченна возвратом элементов(return). Она не может возвратить больше одного элемента. А вот если вам надо манипулировать скажем работником предприятия?
Работник имеет имя, телефон, адрес. Вы решили обновить данные работника в одной из функций, и возвратить всю информацию для работы с другой функцией.
Вот и дополнительные приимущества ООП. В функции вы именяете данные работника:
работник.имя="Василий Петрович";
работник.телефон="1234567";
работник.адрес="Москва,Красная Площадь,Кремль";
return работник;


...

   
 
 автор: cheops   (28.11.2005 в 14:08)   письмо автору
 
   для: ck   (28.11.2005 в 04:00)
 

ООП введён в PHP потому, что вводится ввезде, однако Internet создавался в UNIX-традициях, где объектно ориентированное программированиепрактически не применимо - там другой стиль создания ПО. Сложностью управляют стеком протоколов, поэтому применение поверх них ООП приводит к тому, что простые вещи становятся сложным. Perl-разработчики тоже практически не используют ООП. ООП следует использовать когда под него имеются задачи, в PHP их практически нет. Возможно вам будет интересны следующие темы.
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=6076
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3061
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=641

   
Rambler's Top100
вверх

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