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