Literally the only valid use of goto is for error handling, and that is covered by exceptions.
I use goto in C all the time to break out of loops and jump to a cleanup function at the end of the code. Of course C doesn't have exceptions and nobody compiles PHP to the metal AFAIK, so I think you're right.
Look up setjmp()/longjmp() and tell us again if you still think C needs GOTO in place of exception handling.
OTOH, using GOTO so that a procedure has limited nesting and only a single exit point is far preferable to having one with super-deep/complicated nesting and/or lots of different exit points (something a lot of PHP programmers seem prone to).