References in PHP suck. Here's an example:
$foo = 1;
func($foo);
// Has $foo changed value?
// You *must* know the definition of func
You may write this off as crazy -- of course you need to be familiar with func
to use it, right? Well… depends on who "you" is. I've debugged code that I didn't write many times. Often it calls code that I also didn't write and am not familiar with. In order to know where the variable I care about changes requires me to look at assignments and every single function where it is used as a parameter. This majorly sucks.
Debugging isn't the only area where references suck. Remember how we cannot know if any given function passes a parameter by reference? This makes optimizing code more difficult. In general it makes writing any code that reasons about code more difficult.