I've been struggling with this for a while (students learn PHP in some of my classes) because I tried using
ini_set('display_errors', 1);
as suggested (e.g. Ullman's PHPv6 and MySQL 5), but placing it in your code did not catch any parse errors. Instead I continued to see blank pages.
A comment in the PHP Manual webpages has given me a clue as to why setting
display_errors = On
in php.ini is not quite the same as adding
ini_set('display_errors', 1);
at the top of your php script. It seems that PHP has a 2-phase operation and parses the script file completely before it starts to execute any of it. If parsing fails because of a missing ";" or ")", then the
ini_set('display_errors', 1);
gets parsed but never executed and so the parse error is not reported.
The same comment offers a way to report parse errors if you do not have the means to change the php.ini settings.