W sumie nie wiem czy rozpoczęcie nauki programowania obiektowego od PHP to najlepsze rozwiązanie. Ja OOP nauczyłem się na C++ i Tobie też to polecam, chociaż na początku może być trudno, ale nie ma nic za darmo

Poza tym C++ to kanon, który co prawda bywa czasem trochę upierdliwy, bo wszystko musi się zgadzać i jest mniej elastyczne niż nowsze języki, ale to uczy porządnego programowania.
Bazując na swoim przykładzie, polecam naukę podstaw C++, potem wskaźników i wtedy programowanie obiektowe w C++.
Jeszcze odnośnie Twojego kodu, to zrobiłeś zbiór funkcji, jak poprzednicy pisali; klasy charakteryzują się tym, że obiekty z nich utworzone posiadają 1) zmienne i 2) metody (funkcje) i jedno i drugie jest w równym stopniu ważne, więc tworzenie klas tylko ze zmiennymi albo tylko z funkcjami niewiele nam daje, dopiero połączenie obu pozwala wykorzystać masę funkcjonalności.
Tworzysz klasę i później możesz stworzyć wiele obiektów, które są niezależne od siebie, mają inne dane (zmienne), ale korzystają z tych samych metod.
Trywialny przykład:
<?php
class Prostokat
{
var $szerokosc;
var $wysokosc;
public function pole()
{
return $this->szerokosc * $this->wysokosc;
}
}
$p1 = new Prostokat;
$p1->szerokosc = 20;
$p1->wysokosc = 10;
$p2 = new Prostokat;
$p2->szerokosc = 65;
$p2->wysokosc = 2;
?>
Coś bardziej zbliżonego do Twojego kodu - obiekt 'Tabela':
<?php
class Tabela
{
var $dane;
public function __construct()
{
}
public function addRow($text)
{
$this->dane[] = $text;
}
public function display()
{
foreach($this->dane as $row)
{
echo '<tr><td>'.$row.'</td></tr>'; }
}
}
$produkty = new Tabela;
$produkty->addRow('margaryna');
$produkty->addRow('masło');
$produkty->addRow('chleb');
$produkty->display();
?>
Oczywiście to też przykład trywialny, jedynie obudowanie zwykłego arraya, ale niewiele zmieniając można już poprawić trochę jakość zwyczajnej tablicy, np. walidować dane wejściowe, czyli w funkcji addRow sprawdzać czy $text jest taki jak nam odpowiada, czy nie jest za długi etc. etc.