Em PHP:
require
vs. include
?require_once
vs. include_once
?Há require
e include_once
também.
Então a sua pergunta deveria ser...
require
vs. include
?require_once
vs. require
?A resposta a 1 está descrita aqui.
A função require() é idêntica para incluir(), exceto que ela trata os erros de forma diferente. Se um erro ocorrer, a função include() gera um aviso, mas o script continuará a execução. A função require() gera um erro fatal, e o script irá parar.
A resposta para 2 pode ser encontrada aqui.
A declaração require_once() é idêntica a require() exceto que o PHP verificará se o arquivo já foi incluído e, se sim, não o incluirá (require) novamente.
Diferença entre as funções _once e sem funções _once: sem _código once será incluído novamente enquanto que com _funções once o PHP mantém o controle dos arquivos incluídos e o incluirá apenas uma vez.
Diferença entre exigir e incluir: Se um arquivo requerido não for encontrado, o PHP emitirá um erro fatal, enquanto que para incluir apenas um aviso será emitido.
A diferença está no erro que os comandos geram. Com require
, o arquivo que você quer utilizar é realmente necessário e assim gera um E_ERROR
se ele não for encontrado.
require()
é idêntico ainclude()
exceto que ao falhar, também produzirá um erro fatal de nívelE_ERROR
.
A opção "Incluir" só gera um erro "AVISO_E" se ele falhar, o que é mais ou menos silencioso.
Então use-o se o arquivo for necessário para fazer o código restante funcionar e você quiser que o script falhe, o arquivo não está disponível.
Para *_once()
:
include_once()
pode ser utilizado em casos em que o mesmo arquivo pode ser incluído e avaliado mais de uma vez durante a execução de um script em particular, então neste caso pode ajudar a evitar problemas como redefinições de funções, reatribuições de valores de variáveis, etc.
O mesmo se aplica a require_once()
, claro.
Referência: require()
, include_once()