PHP include_once

Resumo : neste tutorial, você aprenderá como usar a include_onceconstrução PHP para incluir um arquivo uma vez.

Introdução à construção include_once do PHP

No includetutorial, você aprendeu como carregar o código de outro arquivo usando a includeconstruçã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.phpLinguagem de código:  texto simples  ( texto simples )

O functions.phptem 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.phparquivo 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.phparquivo:

Fatal error: Cannot redeclare dd() (previously declared in .\inc\functions.php:3) in .\inc\functions.php on line 3Linguagem 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.phpe footer.phpno incdiretó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.phparquivo, se você incluir o header.phparquivo 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_onceinstrução:

include_once 'path_to_file';Linguagem de código:  PHP  ( php )

O include_oncese comporta como a includeinstrução, exceto que, se o arquivo for incluído novamente, include_oncenão carregará o arquivo e retornará true.

Simplificando, include_oncecarrega o arquivo apenas uma vez, independentemente de quantas vezes o arquivo é incluído.

No exemplo acima, se você usar a include_onceconstruçã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.phpque carrega outros dois arquivos:

  • Logger.php
  • Banco de dados.php

O Database.phparquivo também carrega o Logger.phparquivo. Nesse caso, o Logger.phparquivo é usado duas vezes, uma no Database.phparquivo e outra no arquivo index.php.

php include_once

Nesse caso, você precisa usar a include_onceconstrução para carregar o Logger.phparquivo e fazê-lo funcionar corretamente.

Resumo

  • Use a instrução PHP include_oncepara carregar um arquivo uma vez.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *