Как сохранять переменную между методами одного класса, результат половинчатый

//МОДЕЛЬ
class Product{
    private $conn;
    private $item_diff;
    public function __construct($db,$item_diff){
        $this->conn = $db;
        $this->item_diff = $item_diff;
    }
    public function read(){ 
        //в метод приходит id товара
        $id = $this->id;
        //Запрос в БД - получаю массив параметров товара
        //....
        $product = 'результат запроса';
        //массив параметров товара присваиваю переменной item_diff
        $this->item_diff['read'] = $product;
        return $product;
    }
    public function update(){
        //в метод приходит массив параметров из формы
        $update_data = $this->update_data;
        //этот же массив присваиваю переменной item_diff
        $this->item_diff['upd'] = $update_data;
        //далее запрос в БД на апдейт
        //...
    }
    public function logs(){
        //в этом методе хочу получить переменную item_diff
        $res = array();
        if($this->item_diff) $res = $this->item_diff;
        return $res;
    }
}
//КОНТРОЛЛЕР
$item_diff = array();
$product= new Product($db,$item_diff);
$product->id = $product_id;
//получаю товарный массив для генерирования формы
$form = $product->read();
//генерирую форму с подставленными значениями из БД
//...$form -> html
//менеджер меняет какие-то параметры и отправляет форму, в контроллер с формы приходит массив $form_data
//отправляю массив $form_data в модель для апдейта
$product->update_data = $form_data;
$product->update();
//далее хочу получить оба массива, чтобы сравнить и записать измененные поля в логи
$logs = $product->logs();
//но здесь только item_diff['upd']

Ответы (0 шт):