They got back to me, and were quite helpful.
Problem is (as you say) that their PHP is built differently somehow.
The other servers that I've run this error handler on will let the error handler catch runtime type errors (wrong parameter passed etc) and also catch format errors (eg a line such as "silly code = ")
These servers will only catch the runtime type errors (wrong parameter passed etc) . They won't catch format errors ("silly code = ;"). They just write to the error log, and then die leaving no trace.
So the interesting question is why?
One server is running PHP 5.2.8, the other runs 5.2.6, so that should not be a big difference, and the error handling stuff tends to be fairly stable.
I've asked them to check with their techies.
But if anyone knows about any buildtime options that can cause this, then I'd be interested.
- for example, do some versions of PHP do "compile type" checks differently.