4.0 isn't really an OO engine. It was a hacky addin to the existing 4.x procedural core. It is. . . not great to say the least, but for what they could do it turned out surprisingly well (no, I wouldn't use it either :P). 5.0 redefined the entire underlying engine for OO making it far more powerful. 4.x was more of a collection of functions and variables specific to a "group", or more close to a struct than an object.
Constructor name is often the name of the class. I haven't a clue why they redefined that in 5.x especially since the BC for 5 to 4 still dictates you can use them with the exception of namespaces matching the same classname for the ending portion of the namespace.
This is another great reason to not use PHP as your language of choice to learn OOP on.