- Publicado em
Diferenças entre require, require_once, include e include_once no PHP
- Authors
- Nome
- Matheus Honorato
Fala, galera! Se você trabalha com PHP com certeza já precisou anexar um script em outro e provavelmente surgiu a dúvida de qual função do PHP utilizar. Neste artigo vamos falar sobre as funções disponíveis no PHP para esta finalidade e suas principais diferenças.
require
, require_once
, include
e include_once
O que são (opções): Essas quatro funções são usadas para incluir e reutilizar código em seus scripts PHP. Aqui está um resumo de cada uma:
require
: Inclui e avalia o arquivo especificado. Se o arquivo não for encontrado,require
gera um erro fatal e para a execução do script;require_once
: Semelhante arequire
, mas garante que o arquivo seja incluído apenas uma vez. Se o arquivo já tiver sido incluído anteriormente, ele não será carregado novamente;include
: Inclui e avalia o arquivo especificado. Se o arquivo não for encontrado,include
gera um aviso (warning) e o script continua a execução;include_once
: Semelhante ainclude
, mas também garante que o arquivo seja incluído apenas uma vez.
Detalhes e Comparação
require
1. Uso:
require 'arquivo.php';
Características:
- Erro Fatal: Se o arquivo especificado não for encontrado, o PHP gera um erro fatal (
E_COMPILE_ERROR
), o que significa que a execução do script será interrompida; - Obrigatório: Use
require
quando o arquivo a ser incluído é essencial para o funcionamento do seu script. Por exemplo, se você incluir um arquivo de configuração, o script não deve continuar sem ele.
Quando Usar:
- Quando a inclusão do arquivo é crítica para o funcionamento da aplicação;
- Quando você precisa garantir que o código do arquivo incluído está presente e corretamente carregado.
require_once
2. Uso:
require_once 'arquivo.php';
Características:
- Evita Inclusão Duplicada: Garante que o arquivo seja incluído apenas uma vez, mesmo se o
require_once
for chamado várias vezes; - Erro Fatal: Assim como
require
, se o arquivo não for encontrado, um erro fatal será gerado e a execução do script interrompida.
Quando Usar:
- Quando você precisa garantir que um arquivo não seja incluído mais de uma vez, o que é comum para arquivos que definem funções, classes ou configurações;
- Ideal para evitar conflitos e redefinições, especialmente em projetos grandes e complexos.
include
3. Uso:
include 'arquivo.php';
Características:
- Aviso: Se o arquivo especificado não for encontrado, o PHP gera um aviso (
E_WARNING
), mas a execução do script continua; - Opcional: Use
include
quando a inclusão do arquivo não for crítica para o funcionamento do script e você deseja que o script continue mesmo se o arquivo não estiver disponível.
Quando Usar:
- Quando a inclusão do arquivo é opcional e não comprometerá a execução do script se o arquivo não estiver presente;
- Ideal para incluir arquivos que fornecem funcionalidades secundárias ou que são necessários apenas em determinadas condições.
include_once
4. Uso:
include_once 'arquivo.php';
Características:
- Evita Inclusão Duplicada: Garante que o arquivo seja incluído apenas uma vez, como o
require_once
; - Aviso: Se o arquivo não for encontrado, um aviso é gerado e a execução do script continua.
Quando Usar:
- Quando você precisa incluir um arquivo de forma opcional e evitar múltiplas inclusões;
- Ideal para arquivos que podem ser incluídos em várias partes do script, mas onde a inclusão repetida não deve ocorrer.
Exemplos Práticos
Vamos considerar um exemplo para ilustrar a diferença entre essas funções:
Exemplo com require
:
// config.php
return [
'db_host' => env('HOST'),
'db_name' => env('DB_NAME'),
];
// index.php
$config = require 'config.php';
O arquivo functions.php será anexado e caso não sejá encontrado uma exceção será disparada e o script interrompido.
Exemplo com require_once
:
// functions.php
function sayHello(): void {
echo "Hello, world!";
}
// index.php
require_once 'functions.php';
sayHello();
Mesmo que existam multiplos 'require_once' o arquivo functions.php será anexado somente uma vez e caso não sejá encontrado uma exceção será disparada e o script interrompido.
Exemplo com include
:
// footer.php
echo "<footer>Footer content</footer>";
// index.php
include 'footer.php';
O arquivo footer.php será anexado e caso não seja encontrado um warning é disparado.
Exemplo com include_once
:
// user.php
class User {
// Class definition
}
// index.php
include_once 'user.php';
O arquivo user.php será incluído apenas uma vez, mesmo que seja chamado múltiplas vezes e caso não seja encontrado um warging é disparado.
Conclusão
Entender as diferenças entre require
, require_once
, include
e include_once
é crucial para escrever código PHP robusto e eficiente. Enquanto require
e require_once
garantem que o código necessário seja incluído, include
e include_once
oferecem uma abordagem mais flexível, onde a inclusão do arquivo não é tão crítica. Saber quando usar cada uma destas funções pode melhorar a organização do seu código e evitar problemas comuns, como inclusões duplicadas e erros de execução.
Gostou do conteúdo? Então compartilhe com o máximo de pessoas e contribua com a comunidade PHP.