В описании (вернее, в комментарие) функции error_get_last имеется в виду не совсем очистка, а скорее приведение к определённому, известному значению. Т.е. нужно будет изменить код и сравнивать возвращаемое error_get_last значение не с null, а с известным значением (что-то типа "Undefined variable: error_clear".
В вашем случае советую поступить совсем по-другому. Перед вызовом установите set_error_handler на функцию, которая конвертирует все ошибки в исключения (пример есть
здесь). После вызова нужной функции восстановите restore_error_handler. Если возникнет ошибка, будет брошено исключение. Словите его и примите меры.