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 :: чем отличаются статические методы от не статических
зы
А вообще это мягкотелось авторов пхп, поощряющих говнокод, в любом другом нормальном языке это вызвало бы ошибку.
DlTA
Отправлено: 20 Июля, 2012 - 12:27:23
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
Stierus пишет:
class a{
public $x = 10;
public function fa(){
echo $this->x;
}
}
a::fa();
инимы словами, статические методы есть для того чтоб наглядно понимать что они юзают статические совйства и все? (Добавление)
а в памяти такие методы как занимают место?
Stierus
Отправлено: 20 Июля, 2012 - 12:34:06
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
Иными словами статичиские методы - это то, что не относится к объектам. Это конструкция класса. Если ты не создал ни одного экземпляра класса, они могут работать - стат. функции - это как просто функция, не привязанная ни к чему, просто входит в состав класса для удобства поиска, логического разделения или просто маразма от.
Нестатические функции - это то, что работает с конкретными экземплярами класса, с объектами. Конкретные экземпляр класса "a" может иметь свое значение $x и нестатические методы работают с данными именно этого объекта. В то время как попроси статическую функция вывести переменную $x объекта
- в какой из объектов ей смотреть, если их три? (Добавление)
Цитата:
а в памяти такие методы как занимают место?
Про память лучше не спрашивай, весть пых написан на своем си-говно-фреймворке со своим подсчетом ссылок, выделением памяти и прочим, там много структур разных и ответ на твой вопрос зависит от многих факторов - пока не заморачивайся. Если реально будет интересно - открывай исходники и смотри, на форуме ты не найдешь человека, который тебе на подобные вопросы ответит.
DelphinPRO
Отправлено: 20 Июля, 2012 - 12:43:59
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
статические методы выполняются в контексте класса, нестатические - в контексте объекта.
----- Чем больше узнаю, тем больше я не знаю.
Stierus
Отправлено: 20 Июля, 2012 - 12:44:24
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
только сейчас увидел, что ты про методы. С методами все проще - методы не дублируются для разных объектов, метод один, ему ток области данных, в зависимости от объекта, разные подсовываются.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.