Для понимания разницы (она состоит в том, что значение может изменяться либо до либо после изменения переменной), рассмотрим такой пример:
$a = $b = $c = $d = 1;
echo "$a++ возвращает значение: ", $a++, ' | $a стало равно = ', $a, "<br>" ;
echo "++$b возвращает значение: ", ++$b, ' | $b стало равно = ', $b, "<br>" ;
echo "$c-- возвращает значение: ", $c--, ' | $c стало равно = ', $c, "<br>" ;
echo "--$d возвращает значение: ", --$d, ' | $d стало равно = ', $d, "<br>" ;
Или вот с реализацией: