@lerouquin 
If you want to check all element of the array, you should return false when one element of array not exit.
    
    if (!isset($this->messages[$domain][$id])) {
        return false;
    }