I can't seem to get any consistent info on this. Different sources appear to say different things and the venerable php.net itself (appears) not to explicitly state this - although, I must admit, I only had a quick look.
In cases where I am passing around 'heavy' objects, I need to pass by reference, but I don't want to keep typing:
function foo(TypeName& $obj)
if I can get away with simply
function foo(TypeName $obj)
So what does the standard say?
Objects are passed (and assigned) by reference. No need to use address of operator.
Granted what I typed is an oversimplification but will suit your purposes. The documentation states:
For a more detailed explanation (explains the oversimplification as well as identifiers) check out this answer.