Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: ООП с самого начала [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (4): « 1 [2] 3 4 »   

> Описание: Проба пера - попытка номер два.
tuareg
Отправлено: 12 Ноября, 2011 - 22:05:23
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Просто это бы было очень наглядно и понятно (по крайней мере для меня Улыбка )
И еще такой вопросик. А с точки зрения оптимизации. Как это все работает? Если я правильно понимаю ООП не может быть быстрее функций по определению. Или используется какой-то другой алгоритм?
Т.е время на инициализацию класса всегда больше, чем выполнение ф-й.
P.S. Простите если я задаю глупые вопросы. Просто сколько я не читал в инете, все пишут по-разному.
 
 Top
DeepVarvar Супермодератор
Отправлено: 12 Ноября, 2011 - 22:11:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Классы действительно медленне ф-ций, но те возможности, которые они дают для реализации приложений покрывают все расходы по времени с лихвой.

Теперь наглядность...
Вот для примера автомобильчик. Обратите внимание как он лаконичен.
Сколько и какого кода вы бы написали процедурно?
http://forum.php.su/topic.php?fo...55348#1307655348
 
 Top
tuareg
Отправлено: 12 Ноября, 2011 - 22:19:19
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Спасибо за ссылку, добавил в избранное. Вы пишите если есть желание, правда все это очень интересно и пишите Вы достаточно доступно.(по крайней мере у Вас есть один благодарный читатель)
 
 Top
DeepVarvar Супермодератор
Отправлено: 12 Ноября, 2011 - 22:20:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Спасибо Радость Радость Радость
 
 Top
tuareg
Отправлено: 12 Ноября, 2011 - 22:26:50
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




А можете ответить на несколько вопросов касаемо класса $car?
$car = new car; //Это я понял, создали класс
$car->beep(); // С этим тоже понятно
$car->gaz(30); // А вот тут когда сработал __construct() строка 34
Как бы дальше тоже понятно.
И еще а как сделать 2 машину?(создать второй класс)
 
 Top
DeepVarvar Супермодератор
Отправлено: 12 Ноября, 2011 - 22:28:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Конструктор сработал во время создания объекта.
Создать вторую машину легко:

(Добавление)
так же в тот момент когда сработал конструктор мы установили св-во $engine в положение on и израсходовали немного топлива - это ведь естественно, перед тем как повернуть ключ зажигания мы придавливаем педаль чтобы подать чуток смеси в карбюратор. Закатив глазки
 
 Top
tuareg
Отправлено: 12 Ноября, 2011 - 22:33:31
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Если я правильно понимаю. То __construct() вызывается всегда при инициализации класса
(т.е фактически что-то типа options(базовые настройки) класса). Правильно?
И еще Вы указываете переменные var $переменная-это обязательно?
 
 Top
DeepVarvar Супермодератор
Отправлено: 12 Ноября, 2011 - 22:38:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




tuareg пишет:
Правильно?
Правильно. Закатив глазки
tuareg пишет:
var
Кроме оных существуют еще и многие другие "типы" свойств классов, например: static, private, public, protected... А var, это как бы дефолтное объявление паблик-свойства. Т.е. оно будет доступно извне:
$car->engine = "off";
Чтобы такого не происходило, если это нужно по логике приложения, можно вместо var написать private.
Тогда прочитать или изменить приватное св-во извне будет нельзя - это вызовет ошибку.
 
 Top
tuareg
Отправлено: 12 Ноября, 2011 - 22:44:23
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Уже что-то отложилось в голове Радость Понимание приходит. Еще не совсем, но думаю что при наличии новых постов будет лучше. Правда Великое дело делаете
 
 Top
DeepVarvar Супермодератор
Отправлено: 12 Ноября, 2011 - 22:45:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Так же в будущем, я слышал, говорят, уберут определение var, поэтому уже сейчас стоит явно указывать public или private
(Добавление)
Я еще раз подведу итог того что было описано в статье.
Комментарии немного не в счет, эти вещи нужно описывать в следующих "перлах".
Вобщем в статье мы разобрали следующие вопросы:
1) функции
2) "сообщество" функций
3) сначала логика, затем вывод
4) классы и методы
5) немного информации о возможностях

Третий пункт очень важен!

(Отредактировано автором: 12 Ноября, 2011 - 22:50:42)

 
 Top
caballero
Отправлено: 12 Ноября, 2011 - 22:50:04
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Просто это бы было очень наглядно и понятно (по крайней мере для меня)

Не будет понятно. Тебе будет КАЗАТЬСЯ что понятно. До первого самостоятельного РЕАЛЬНОГО куска проекта.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
DeepVarvar Супермодератор
Отправлено: 12 Ноября, 2011 - 22:53:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




caballero пишет:
До первого самостоятельного РЕАЛЬНОГО куска проекта
Это точно. Я когда устроился на работу прогером и дали мне корпоративную ЦМС разбирать, я потерялся напрочь..
Но это только самый первый опыт, дальше уже не страшно и все гораздо быстрее.
Сейчас уже всеравно во что вкуривать. Нет растерянности. Это сравнимо с опытом выхода на сцену к зрителям Радость
 
 Top
tuareg
Отправлено: 12 Ноября, 2011 - 23:00:30
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Я не буду спорить, смысл не в этом. Для меня было бы наглядней, понятней и т.д
есть задача что-то сделать и предлагается 2 варианта решения один ООП, другой ф-ии.
Я смотрю и вижу, ага здесь да лучше ООП, а здесь ф-ии. Я еще раз уточняю мне это очень интересно, поэтому как бы не думайте про меня всякое Радость.
 
 Top
caballero
Отправлено: 12 Ноября, 2011 - 23:09:53
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Я смотрю и вижу, ага здесь да лучше ООП, а здесь ф-ии

Если бы ты мог это видеть - у тебя бы не было вопросов по ООП.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
DeepVarvar Супермодератор
Отправлено: 12 Ноября, 2011 - 23:23:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




caballero пишет:
Если бы ты мог это видеть
он сможет это видеть тогда и только тогда когда будет знать ООП.
Все очень просто, зачем расписывать преимущества и/или недостатки ООП подхода, когда он не знает что в нем сокрыто?
Для того чтобы знать зачем оно надо, сперва нужно это знать.
Я не призываю брать и юзать немедленно, наоборот, все полученные недознания применяться могут только на свой страх и риск, и никак иначе. Так лучше их пока не применять и впитывать, впитывать, впитывать...
 
 Top
Страниц (4): « 1 [2] 3 4 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Обсуждение статей »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB