Really simple question but rather than asking for an academic explanation I want to keep it as pragmatic as possible: when will PHP create a copy of my huge class I’m passing into a function and when will it simply create a pointer to the relevant data? And if it creates pointers all the time, what’s the use of specifying & (aside from closures, obviously)? I guess I don’t know enough about the guts of the interpreter.
Really simple question but rather than asking for an academic explanation I want to
Share
In PHP 5, all objects are passed by their handle. Whether you pass by reference or not is irrelevant in terms of performance. (In fact, passing by reference is warned to be slower in the manual.) The object you are working on inside the function is the same object as pointed to outside the function.
When you pass an object (handle) by reference, then you can alter what the outer variable points to. This is almost always unnecessary.