Resumo : neste tutorial, você aprenderá como usar a include_once
construção PHP para incluir um arquivo uma vez.
Introdução à construção include_once do PHP
No include
tutorial, você aprendeu como carregar o código de outro arquivo usando a include
construção.
Às vezes, você pode ter um arquivo incluído mais de uma vez.
Se o arquivo incluído tiver uma função, você receberá um erro fatal porque a função já foi declarada novamente no primeiro carregamento. Por exemplo:
Suponha que você tenha o seguinte diretório de projeto:
.
├── inc
│ └── functions.php
└── index.php
Linguagem de código: texto simples ( texto simples )
O functions.php
tem a dd()
definição da função:
<?php
function dd($data)
{
echo '<pre>';
var_dump($data);
echo '</pre>';
die();
}
Linguagem de código: HTML, XML ( xml )
E no index.php file
, você inclui o functions.php
arquivo duas vezes:
<?php
include 'inc/functions.php';
include 'inc/functions.php';
Linguagem de código: HTML, XML ( xml )
O PHP emitirá o seguinte erro se você executar o index.php
arquivo:
Fatal error: Cannot redeclare dd() (previously declared in .\inc\functions.php:3) in .\inc\functions.php on line 3
Linguagem de código: texto simples ( texto simples )
Da mesma forma, se o arquivo incluído gerar alguns elementos HTML, você os verá mais uma vez na página. Para ver como isso acontece, vamos criar dois novos arquivos header.php
e footer.php
no inc
diretório:
header.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>PHP include_once</title>
</head>
<body>
Linguagem de código: HTML, XML ( xml )
footer.php
</body>
</html>
Linguagem de código: HTML, XML ( xml )
No index.php
arquivo, se você incluir o header.php
arquivo duas vezes, verá que a página terá dois cabeçalhos:
<?php include 'inc/header.php' ?>
<?php include 'inc/header.php' ?>
<h1>PHP include_once Demo</h1>
<?php include 'inc/footer.php' ?>
Linguagem de código: HTML, XML ( xml )
Para evitar incluir um arquivo mais de uma vez, você pode usar a include_once
instrução:
include_once 'path_to_file';
Linguagem de código: PHP ( php )
O include_once
se comporta como a include
instrução, exceto que, se o arquivo for incluído novamente, include_once
não carregará o arquivo e retornará true
.
Simplificando, include_once
carrega o arquivo apenas uma vez, independentemente de quantas vezes o arquivo é incluído.
No exemplo acima, se você usar a include_once
construção, o script funcionará corretamente:
<?php include_once 'inc/header.php' ?>
<?php include_once 'inc/header.php' ?>
<h1>PHP include_once Demo</h1>
<?php include_once 'inc/footer.php' ?>
Linguagem de código: HTML, XML ( xml )
Por que usar a construção include_once do PHP
Imagem que você tem um arquivo chamado index.php
que carrega outros dois arquivos:
- Logger.php
- Banco de dados.php
O Database.php
arquivo também carrega o Logger.php
arquivo. Nesse caso, o Logger.php
arquivo é usado duas vezes, uma no Database.php
arquivo e outra no arquivo index.php
.
Nesse caso, você precisa usar a include_once
construção para carregar o Logger.php
arquivo e fazê-lo funcionar corretamente.
Resumo
- Use a instrução PHP
include_once
para carregar um arquivo uma vez.