If you have no programming experience (HTML and CSS are not programming 😉 ), I would suggest not worrying so much about PHP-specific classes as classes on general programming concepts and database concepts. Once you understand the essentials of programming logic, data structures, and database design/SQL; then picking up PHP will simply(?) be a matter of learning its specific syntax, function names, etc. The inverse could lead to a lot of frustration: concentrating on the specifics of PHP syntax without really understanding how to design and write computer software.
As far as how I learned PHP: years of work experience in various non-programming jobs in IT companies (but rubbing elbows with lots of programmers), a few general computer courses, books, on-the-job mentors, forums like this, Google, playing around with personal computers since the mid '80s, etc. 🙂