2012-01-09 2 views
7

Мне просто интересно, какие преимущества используют public static function или private static function, а не просто public function или private function?PHP | Почему я должен использовать статическую/приватную статическую функцию вместо функции public/private?

+0

Это не вопрос преимущество или недостаток. Кроме того, вы искали сайт? – BoltClock

+4

вам не нужно создавать объект для использования статических методов. И есть много связанных вопросов! – meze

+0

Да, я читал некоторые из сайтов PHP Manual, но я, кажется, не понимаю, зачем использовать статические методы, я только понял, что вместо вызова публичной функции, такой как этот '->', я могу сделать это '::' и некоторую другую информацию, которую я прочитал о статических методах на сайте PHP php ... – Roland

ответ

22

«Обычные» методы (обычно называемые экземплярами методов) вызываются на экземпляр класса, в котором они определены. Метод всегда будет иметь доступ к его объекту через $this, и поэтому он может работать с данными, переносимыми этим объектом (и даже изменять его). Это основной аспект объектно-ориентированного программирования, и именно это делает класс более чем просто связкой данных.

Звонки на статические методы, с другой стороны, не связаны с конкретным объектом. Они ведут себя как обычные функции в этом отношении; действительно, единственное отличие состоит в том, что они могут быть помечены private, а также иметь доступ к закрытым методам и переменным в экземплярах собственного класса. Статические функции - это просто расширение процедурного программирования.

Например, метод экземпляра вызывается на объекте:

$object = new MyClass(); 
$result = $object->myInstanceMethod(); 

Статический метод вызывается на самом классе:

$result = MyClass::myStaticMethod(); 
Смежные вопросы