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

Форум PHP

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

 

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

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

тема: ООП: статистические и динамические методы
 
 автор: garold   (19.06.2010 в 03:29)   письмо автору
 
 

Собственно у меня вопрос такой. В каком случае лучше использовать статистические методы класса, а в каком динамические, тоесть с созданием объекта?

  Ответить  
 
 автор: sl1p   (19.06.2010 в 03:38)   письмо автору
 
   для: garold   (19.06.2010 в 03:29)
 

File::delete($file);
 
вместо

$file = new File($file);
$file->delete();
unset($file);

©

  Ответить  
 
 автор: garold   (19.06.2010 в 04:20)   письмо автору
 
   для: sl1p   (19.06.2010 в 03:38)
 

unset($file) здесь здесь будет лишним.

То что Вы написали, я прекрасно знаю. Но меня больше вопрос больше правильности интересует. Тоесть в каких случаях не лишним будет создавать объект, а в каких вызывать статистически.
Какие плюсы/минусы у статистических методов и аналогично у динамических?

  Ответить  
 
 автор: sms-send   (19.06.2010 в 11:29)   письмо автору
 
   для: garold   (19.06.2010 в 04:20)
 

Не статистические, а статические.
Статический метод не может иметь доступ к внутренним нестатическим членам класса (т.е. к объекту $this). Если вызов метода не зависит от внутреннего состояния объекта, то метод может быть статическим. Если метод меняет внутреннее состояние объекта или зависит от этого состояния, то, соответственно, статическим он быть не может.
Статический метод - почти как глобальная функция, но ассоциированная конкретному классу и имеет доступ к его закрытым членам.

  Ответить  
 
 автор: Tonik992   (19.06.2010 в 12:57)   письмо автору
 
   для: sms-send   (19.06.2010 в 11:29)
 

Так и есть..
Статические данные описывают информацию для всех объектов...
Допустим, мы используем класс "банковские счета".. В нём есть поле "процентная ставка"..
Мы создаем около 100 объектов этого класса. Т.к. у нас поле нестатическое и все объекты уникальны, придется через каждый объект устанавливать "процентную ставку".. Представляешь себе часовую картину, через каждый объект вызывать метод "установить процентную ставку" ?
Вот тут и помогает статическое поле... Все банковские счета будут разделять общую процентную ставку...

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


p.s. иногда бывает необходимость создать класс с только статическими методам, объявив конструктор как приватный.. когда нам вообще не нужны объекты.

  Ответить  
Rambler's Top100
вверх

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