Can I suppress PHP error messages for authenticated users, BUT display all of them for an admin? I would like to suppress all the PHP error messages (errors, notices) for a regular authenticated user, BUT display ALL of them for an administrator ($user-&gt;uid == 1 or user with an "administrator" role).

This way I have the opportunity to set "Error messages to display" to "None" at admin/config/development/logging, but unfortunately this is a GLOBAL setting, which is not the right one for me.
I haven't tested this but I would think you could turn that setting off completely, and enable it again yourself in a custom module:

function MYMODULE_init() {
  if (user_access('a permission only admins have')) {
    error_reporting(E_ALL);
  }
}


Update

Per your comments, it looks like this way doesn't work, but what does work is to do exactly the reverse of the above. That is, to set the error reporting to "All messages" in the UI, and then use hook_init() to surpress the unwanted levels of error message.

I would say your suspicions are correct, that Drupal is handling the errors at a lower level and so turning them off all together stops calling error_reporting() in hook_init() from having any effect.