According to Joel Spolsky, Exceptions shouldn't be used.
My general rule of thumb with regard to exception handling is to first try to maintain application flow for the end user which you could accomplish by just never throwing exceptions in PHP in the first place, but there are times when they are useful.
I tend to look at a decision on whether to throw an exception versus returning a boolean false or some other handling method based on what the conditions are that could lead to the state that triggers the problem.
Is this a normal, plausible value or state to be in when the particular code block is executed? If so, then you probably just want to return a boolean false or some other value indicating that the code block reached a point of failure.
If you concerned that a non-normal value or state might exist, or if the value or state is the result of someone forgetting to properly initialize a variable in the code, then an exception would probably be appropriate because this will provide immediate feedback to you as a developer. A couple of examples here would be of a required property that has to be set in an object constructor but the value is not specified properly or if you have a scenario where a method should not be called on an object you might want to throw an exception if it gets called.
In short, I tend to use the tool that fits best. If I'm dealing with something that is part of normal application execution then I usually return a value to indicate failure. If its a situation where something invalid is happening then I throw an exception so that I deal with the problem.
I suppose you could say that I use exceptions only to catch those things that should truly halt application execution for an end user but I code with the idea in mind that through proper testing none of those lines of code should ever execute in the wild.