Diferenças entre REQUIRE, REQUIRE_ONCE, INCLUDE, INCLUDE_ONCE.

Olá pessoal,

bom este é um POST rápido e bem explicativo sobre as duas funções (acredito que mais utilizadas, se não for, garanto que são bastante uteis, rsrs) do PHP e a diferença entre elas.

INCLUDE, REQUIRE, INCLUDE_ONCE e REQUIRE_ONCE.

Basicamente os dois tem a mesma função de incluir outros arquivos em seu código, com uma pequena diferença no tratamento de erros.

PHP

PHP

INCLUDE: Tenta incluir uma página. Caso falhe, o script retorna um warning (aviso) e prossegue com a execução do script. Aceita passagem de variáveis (GET) na string. Pode ser utilizado em uma estrutura de condicionais que terá seu efeito perpetuado todas as vezes que for chamado.

REQUIRE: Tenta incluir uma página. Caso falhe, o script retorna um fatal error (erro fatal) e aborta a execução do script. Não aceita passagem de variáveis (GET) na string. Não é recomendável que se utilize em estruturas condicionais, a menos que se deseje o seu efeito, de ser executada apenas uma vez.

INCLUDE_ONCE e REQUIRE_ONCE: A única diferença entre as definições acima são que os arquivos só serão inseridos uma única vez, como demonstrarei mais abaixo.

Todos os exemplos a seguir serão com INCLUDE e INCLUDE_ONCE, porém se aplica perfeitamente a REQUIRE e REQUIRE_ONCE. (Se eu fosse explicar os dois eu copiaria de um pra outro… rsrsrs)

Exemplo 1:
teste1.php

<?php
#Criando variáveis
$nome = 'José Luiz Neto';
$website = 'http://www.jlneto.com.br';

#Escrevendo texto.
echo "Este texto veio do arquivo teste1.php <BR />";
?>

teste.php

<?php

include("teste1.php");

echo "Este é um teste do site ".$website." criado por ".$nome.".";
?>

Perceba que foi importado tanto os textos quanto as variáveis.

Exemplo 2:
Você tambem pode colocar includes dentro de funções, exemplo:

teste2.php

<?php
function chamaInclude() {
    include 'teste1.php';
    echo "Texto vindo da função com includes do site ".$website;
}

chamaInclude();
echo "Nome: ".$nome;
?>

No exemplo acima perceba que o include foi colocado dentro da função e a variável $nome não esta criada fora da função.

Exemplo 3:
teste3.php

<?php
$cont = $cont + 1;
echo "<br />Contador em ".$i;
?>

teste4.php

<?php
$cont = 0;
include("teste3.php");

include("teste3.php");

include("teste3.php");
?>

Perceba que o arquivo “teste3.php” foi chamado mais de uma vez e com isso o contador foi incrementado várias vezes, agora veja o exemplo 4.

Exemplo 4:
teste5.php

<?php
$cont = 0;
include_once("teste3.php");
include_once("teste3.php");
include_once("teste3.php");
?>

Percebeu a diferença do Exemplo 3? no “include_once” mesmo tendo várias chamadas para o mesmo arquivo, ele só é carregado uma vez. Caso ele esteja em uma condicional ao tentar incluir pela segunda vez o retorno será false e a página não será incluída.

Bom Pessoal espero que tenha ajudado a esclarecer o funcionamento e as diferenças das funções, tentei fazer bem explicativo para leigos e com informações uteis para os mais experientes, fiquem a vontade para perguntar, e deixe seu comentário.

Referência:

http://www.php.net/manual/pt_BR/function.include.php

[]’s
José Luiz Neto

Facebook

About JLNeto