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.
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
Estou iniciando em PHP, e o seu post me ajudou, ficou muito bem explicado, era o que eu precisa valeu!!!
Valeu Geanderson, fique a vontade pra perguntar o que quiser, será um prazer ajuda-lo.
[]’s
JLNeto olá, tenho outra dúvida e preciso confirmar o que estou pensando a respeito do assunto, entendi as diferenças, porém tenho outra dúvida.
Por exemplo seu uso require_once em certas ocasiões como inserir a conexao.php que conecta com o BD na page onde vou cadastrar clientes, se eu estou nesta pagina e de repente eu cadastro 1,2,3,4 clientes, usando require_once neste caso meu processo de cadastro ficaria mais rápido?, pois eu requisitaria somente uma vez a conexao para o cadastro do primeiro cliente nos demais não requisitaria a conexao pelo fato de já ter requisitado no primeiro e estava ok….
Estou certa na minha concepção ou não?
Olá kethellen,
está correto sim… a terminação _ONCE verifica se o arquivo já foi inserido e impede que ele seja chamado novamente. Com isso só será processado uma única vez, deixando o processamento mais rápido.
Está correto também o uso do REQUIRE nessa situação pois a página não funcionaria caso aconteça algum problema na chamada do arquivo.
Parabéns e estou a disposição para qualquer dúvida.
[]’s
Oi JLNeto olha eu novamente por aqui, agora é pra pedir pra você fazer um tutorial, tô muito curiosa pra saber como fazer essas caixas para postar códigos que vc faz nos tutoriais.
valeu abraço…