Avatar ·

Qual a diferença entre require, include, require_once e include_once em PHP?

Olá a todos! Comecei a estudar PHP recentemente e não consigo entender a inclusão de arquivos. Em tutoriais e fóruns, encontro constantemente quatro construções: require, include, require_once e include_once. À primeira vista, elas fazem a mesma coisa — inserem código de outro arquivo — mas sinto que há diferenças importantes entre elas.

Aqui está um exemplo do meu código. Tenho um arquivo config.php com as configurações do banco de dados:

<?php
$host = 'localhost';
$user = 'root';
$pass = 'password';
?>

E o arquivo principal index.php, onde tento incluí-lo:

<?php
include 'config.php';
echo $host; // Funciona
?>

Mas quando mudo include para require, o comportamento parece o mesmo. E se o arquivo não existir, include apenas mostra um erro, enquanto require interrompe o script. E o tal do