Inconsistencies of PHP:
* OOP is not fully realized, big part is still procedural, so it's a mixed bag
* Procedural part has many naming conventions - something that OOP is supposed to fix
* Returned values mean one thing for this function and another thing for other function
* Parameter order is ambiguous for some functions, of the same group
* In attempt to go OOP now there's too many ways to do the same thing
Different clients (browsers), different web-servers, different settings, different PHP versions - it all takes the toll. Also, security is of utmost importance and is often neglected.
If you just want to take a stab at it, some might argue that understanding OOP isn't even necessary - in most cases all code ends up being unmaintainable clusterfsck, anyway, so just go with it.
If you do want to understand OOP, perhaps consider Ruby. It's a kind of a hipster language, that, but at least it has OOP principles at its core.
Other options are Java and C#. They are universal, more robust than any single web-oriented thingamajig will ever be.
Go Java if you lean towards Android, for example. Go C# if you lean towards larger wallet *cough*
And in any case, I'd suggest Code Complete: http://www.amazon.co...n/dp/0735619670