Организация кода, паттерн, php?
Можно посмотреть как реализовано у других с ошибками.

1. Получать ошибку отдельным методом. Например: mysql_error — получение текста ошибки последней операции.

2. И ваш способ со ссылкой. Например: fsockopen — 3 и 4 аргументы передаются по ссылкам и содержат код и текст ошибки соответственно.

Но первый мне нравится больше — не надо изменять интерфейс существующих методов.
Ну можно например так: 
class Parser 
{
protected $_messages = array();
public function parse($a)
{
$this->_messages['message key'] = 'some message ...';
/// some code;
return $b;
}

public function getMessages()
{
return $this->messages;
}
}

$parser = new Parser();
$parser->parse($a);
$messages = $parser->getMessages();