PHP has come a long way (baby) since it's early PHP/FI days, when Rasmus was just throwing together some scripts to help with his homepage. It evolved and grew, thanks to some larger Open Source players, and became respected as a scripting language all it's own. When PHP 3.0 rolled around, major things started happening, and the world got its first taste of what would become one of the most popular Apache modules to date - and this article has the rest of the story.
They start off as above, talking about the origins of PHP, and how far it had to come to just be considered PHP 3.0. Then, moving into objects, they cover the current object model (including the copies of objects flying everywhere). While PHP 3 and 4 did address these problems to a certain extent by providing syntactic hacks to pass around objects by reference, they never addressed the core of the problem, which is that objects and other types of values are not created equal. Therefore, objects should be passed around by reference unless stated otherwise.
The answer, of course, to all of the object issues? The Zend Engine 2 that will be a part of PHP 5 and all the releases to follow. There are numerous other features that are a part of this new engine, and I think I speak for the entire community when I say that we can't wait for the final release...




