PHP Módulos Básico
include e require
Em PHP, include e require permitem inserir o conteúdo de um arquivo dentro de outro, como se o código fosse colado no local. A diferença principal está no tratamento de erros: include gera um aviso (Warning) e o script continua; require gera um erro fatal (Fatal Error) e interrompe a execução. Por isso, use require para arquivos essenciais (como configurações ou funções) e include para partes opcionais (como um banner ou rodapé).
As variantes include_once e require_once garantem que o arquivo seja incluído apenas uma vez, mesmo que a instrução apareça várias vezes. Isso evita redefinições de funções ou classes, que causariam erro fatal. São especialmente úteis em projetos com múltiplos arquivos que podem se incluir mutuamente.
O caminho do arquivo pode ser relativo ou absoluto. Caminhos relativos são resolvidos com base no diretório de trabalho atual ou no include_path, o que pode causar confusão. Para evitar problemas, use a constante mágica __DIR__, que contém o diretório do arquivo atual. Assim, require __DIR__ . '/config.php' sempre encontrará o arquivo independentemente de onde o script for executado.
Pontos-chave
includeemite um aviso e continua;requireemite erro fatal e para o script.include_onceerequire_onceincluem o arquivo apenas uma vez, evitando redefinições.- Use
__DIR__para montar caminhos absolutos e evitar dependência do diretório atual. - Prefira
requirepara dependências obrigatórias eincludepara conteúdo opcional. - Caminhos relativos podem falhar se o script for chamado de outro diretório.
<?php
// exemplo_include_require.php
// Define o caminho absoluto para a pasta atual
$baseDir = __DIR__;
// Inclui um arquivo de funções (essencial, então require)
require $baseDir . '/funcoes.php';
// Inclui um cabeçalho (opcional, então include)
include $baseDir . '/cabecalho.php';
// Usa uma função definida no arquivo incluído
echo saudacao('Maria') . "\n";
// Tenta incluir um arquivo que não existe com include
include $baseDir . '/nao_existe.php';
echo "Esta linha será executada mesmo com o aviso.\n";
// Com require_once, garantimos que funcoes.php não seja incluído novamente
require_once $baseDir . '/funcoes.php';
echo "Fim do script.\n";
?>