Проблема: реализация алгоритмов обработки данных требует генерации и дальнейшего использования неких промежуточных данных. Хранение которых требует выделение места в оперативной памяти. Что, при неаккуратном использовании, может создавать «мусор», засорять память и, в итоге, замедлять работу приложения.
Предлагаемый способ:
В моих приложениях всегда существует некий базовый класс, на основании которого я создаю остальные классы. В этот базовый у меня скидываются те методы, которые оказываются нужны всем объектам. Даже если в некоторых классах я потом переопределяю метод.
И так в этом базовом классе создаем новое свойство
private $ini = array();
Приватное, что бы даже если случайно где-то ошибся и обратился к нему, то в лучшем случае получил бы ошибку. Название свойства не важно, и почему оно у меня получилось именно ini я не знаю. так получилось.
В деструкторе, конечно, есть строчка
function __destruct() {
unset($this->ini);
}
Теперь как использовать.
class НОВЫЙ_КЛАCС extends БАЗОВЫЙ_КЛАСС
function __destruct() {
parent::_destruct();
}
Ну и метод, в котором используем:
function methodTwoTwo() {
$this->ini[__FUNCTION__] = 2*2;
return ( $this->ini[__FUNCTION__] );
}
function methodTwoSix() {
$this->ini[__FUNCTION__] = 2*6;
return ( $this->ini[__FUNCTION__] );
}
Если бы мы использовали $this->ini в обоих случаях, то в случае вызова метода в методе мы бы получили путаницу, поскольку свойство $this->ini в зоне видимости всех методов класса. Добавляя ключ массива __FUNCTION__ мы используем массив $this->ini раздельно в разных методах, не допуская путаницы данных.
Освобождается память при уничтожении экземпляра объекта автоматическим вызовом __destruct().