Очень важной особенностью ООП является наличие статических свойств и методов . Главное, что необходимо сразу понять, что такие свойства и методы принадлежат не объекту, а классу . Это нужно понять с самого начала, а вот применение статических свойств и методов в PHP я рассмотрю в этом материале.
Очень важной особенностью ООП является наличие статических свойств и методов. Главное, что необходимо сразу понять, что такие свойства и методы принадлежат не объекту, а классу. Это нужно понять с самого начала, а вот применение статических свойств и методов в PHP я рассмотрю в этом материале.
Самый классический пример - это класс, отвечающий за математические функции. Если кто-то знает Java, то он знает, что там имеется класс Math (в JavaScript такой класс тоже есть), содержащий множество математических функций. И там методы являются статическими. Это означает, что для того, чтобы посчитать какой-нибудь синус или экспоненту, не нужно создавать объект данного класса, что очень удобно.
Давайте мы с Вами напишем уменьшенную копию данного класса, но только для PHP:
<?php
class Math {
private static $count = 0;
public function __construct() {
self::$count++;
}
public static function calcSin($x) {
return sin($x);
}
public static function calcSQRT($x) {
return sqrt($x);
}
public static function getCount() {
return self::$count;
}
}
echo Math::calcSin(1);
echo "<br />";
echo Math::calcSQRT(9);
echo "<br />";
$math = new Math();
$math_2 = new Math();
echo Math::getCount();
?>
В данном коде я показал использование статических методов и свойств. Обратите внимание, что я реализовал классический способ счётчика объектов. Это получилось лишь благодаря тому, что поле count является статическим, и оно имеет одно и то же значение для всех объектов.
Ещё один популярный пример использования статических методов и свойств - это ведение лога. Все записи добавляются через статические методы. Также очень часто делают класс, состоящий из множества настроек, и там также все поля являются статическими. Как видите, примеров использования статических методов и свойств в PHP и других языках более, чем достаточно, поэтому уметь с ними работать надо обязательно.
