Raising exceptions can be an expensive proposition, such that exceptions might ought to be raised only in exceptional circumstancesThat's almost word-for-word what he said. He also said that each exception gets pushed onto the stack, which is more expensive than keeping it in memory. I'm not clear on how that's different.
But even if it is more computationally intensive, I think coding to that standard is premature optimization. I think code should be written to be understandable and maintainable until after a bottleneck has been identified. PHP doesn't do checked exceptions, so all you have to do is throw exceptions and catch them where you can handle them. Each function can decide what counts as an exception and each place calling it can decide how critical it is in that context.
So, how much more "expensive" is it to use exceptions rather than returning error objects?