Existem duas maneiras de contornar este problema:
- Para definir
$_errors
como um erro indicando que a validação ainda não aconteceu ou - Para "completamente sem estado": faça
isValid
retornar a matriz de erros e verifique o tamanho da matriz para determinar se a validação foi bem-sucedida ou não
O primeiro caminho é mais fácil para um sistema existente: tornar essa mudança muito mais barata, mas a interação com o objeto permanece no estado, no sentido de que depende da ordem das chamadas.
O segundo caminho pode ser mais difícil de integrar, mas se for aplicado de forma consistente, facilita a aprendizagem de sua API. Diferentes idiomas fornecem maneiras diferentes de abordar a necessidade de retornar vários itens de uma chamada. Em linguagens que permitem passagem por referência ou por ponteiro, a função de validação geralmente retorna um valor booleano, e um espaço reservado para erros é passado por referência no lado.