When you look at a problem based on SOLID principles, you have to look at it in an abstract form. Based on your problem (presentation in HTML of a comment and reply) I would think of a couple of things:
- A class to represent a Comment (probably a ValueObject pattern implementation)
- A class to represent a Reply (linked to a Comment, and also a ValueObject)
- A class to aggregate Comments and Replies (like an ArrayObject but limited to allow only one kind of instance), much like doctrine collections
- A builder implementation to return (and manipulate) the dom objects (like this example) for a given group of comments and replies
What I gave is just an example. You should have a look, for instance, at the Zend/Form implementation and API to get an idea on how to do have a nice way to manipulate and create elements.
You should avoid at all costs having methods that execute "echo" statements, this makes very difficult to reuse the result.
If you want to study Object Oriented programming, I would advise you to hold the strong will you may have of creating a lot of classes and go for reading (and using) some existing implementations (that proper implement design patterns) so you can have a better idea how powerful an object and its interactions can be, so after having a nice idea of it you can leverage that power by creating new classes to perform what you want.
Object Oriented programming tries to solve problems in a very different way than other paradigms. Design patterns are usually the building blocks of how to solve these problems using objects, make sure you go through them to have a better idea on how to structure things; otherwise you will probably keep yourself in the loop of putting algorithms inside methods without leveraging the real sugar OO has to offer.