Concatenar

Conectando pessoas, ferramentas e idéias.

 

Para que servem os comandos Include e Require no PHP?

Basicamente ambos possuem o mesmo objetivo, realizam a chamada de um script externo a ser inserido no script em execução, mas existem diferenças.

São comandos utilizados principalmente quando desejamos chamar classes, adicionar códigos HTML contendo um cabeçalho, menu, rodapé entre outros, arquivos que contenham funções importantes.

 

Exemplo: 

Segue abaixo o arquivo ex1.php, este será o arquivo que iremos chamar em outro script, neste arquivo criamos uma função simples para efetuar uma operação de multiplicação:

 


<?php

function multiplicar($a, $b){
	
	return $a * $b;
}

?>

 

 Agora vamos criar um script ex2.php, o qual quando em execução, chamará o arquivo acima, contendo a função de multiplicação.

 


<?php

include "ex1.php"; //require "ex1.php"; 

$resultado = multiplicar(9, 9);

echo $resultado;

?>

 

Note que ao executarmos o script ex2.php, na linha 4 utilizamos o include para chamar o outro arquivo, poderíamos substituir o include por require e tudo funcionará normalmente. Perceba também que ao utilizarmos o include ou o require, é como se o arquivo inteiro ex1.php fosse completamente inserido na linha 4 do script ex2.php. 

Ao executar o arquivo ex2.php em nosso navegador, vamos apenas visualizar o número 81, resultado da multiplicação de 9 x 9.

É claro que este exemplo é algo bem simples, apenas para compreendermos como ocorre o funcionamento dos comandos. Poderíamos ter inúmeras funções dentro do arquivo ex1.php, e realizarmos muitas outras coisas, pois esses comandos são recursos muito importantes dentro php. 

 


 

Diferenças entre o Include e Require 

 

  1. O comando Require obriga que o arquivo a ser chamado exista e que esteja funcionando corretamente, caso contrário, o Require gera um ERRO_FATAL e para a execução do código.
  2. O Include tenta funcionar mesmo o arquivo chamado não existindo ou tendo problemas.
  3. O comando Include apresenta mais recursos que o Require.
  4. O diretório include_path é um desses recursos - Ele funciona da seguinte forma: Primeiramente  esse diretório deve estar habilitado, por padrão é configurado no arquivo de instalação do PHP - php.ini. Ao efetuarmos a chamada de um arquivo, esse diretório é consultado, se encontrado o arquivo, ele é retornado, se o arquivo não for encontrado no include_path, a declaração include checará no diretório do script que o executa e no diretório de trabalho corrente, antes de falhar. O construtor include emitirá um aviso se não localizar o arquivo. Esse recurso seria uma espécie de repositório, onde é possível armazenar códigos interessantes a serem utilizados por outros scripts. É um recurso interessante para ser utilizado em projetos para Intranet.
  5. Outro recurso é o include remoto, o qual chama um arquivo e o executa através de uma Url completa. Esse recurso apresenta riscos, pois pode ocorrer a inserção de scripts maliciosos, na tentativa de invasão do servidor. E atualmente caso seja necessário utilização de dados externos podemos consultar API's. Outro perigo é usar parâmetros externos como o GET, o que deixa uma porta para injeção de códigos, permitindo a manipulação do código php.       

 

       Importante: Caso o include_path ou outro recurso do Include não esteja sendo utilizado, o ideal é utilizarmos o Require.

 


 

Include_Once e Require_once 

São variações dos comandos include e require, ambos possuem a mesma função que os anteriores, com um adicional que serve para evitar erros caso um arquivo seja chamado duas vezes no mesmo script.

Ex: Vamos supor que o ex2.php, exemplo básico que mostramos no início do artigo seja um script enorme e que por algum motivo no meio dele, inserimos novamente a chamada do arquivo ex1.php, neste caso será retornado erro. 

Para evitarmos esse tipo de erro basta utilizar o include_onde e require_once, mesmo sendo efetuada a chamada de um arquivo externo mais de uma vez no script, não é apresentado erro.

 

Segue abaixo um exemplo que retornará erro, pois existem 2 chamadas para um arquivo externo, caso não seja utilizado o include_once ou require_once:  

 


<?php
include "ex1.php"; 
include "ex1.php"; 

$resultado = multiplicar(9, 9);

echo $resultado;

?>

 

Ao executar esse script, será retornado um erro fatal:

Fatal error: Cannot redeclare multiplicar() (previously declared in C:\xampp\htdocs\include_require\ex1.php:3) in C:\xampp\htdocs\include_require\ex1.php on line 6.

 

Para evitar esse tipo de erro utilize o comando com a variação _once:

 


<?php
include_once "ex1.php"; 
include_once "ex1.php"; 

$resultado = multiplicar(9, 9);

echo $resultado;

?>

 

Espero que essa breve explicação contribua para seus estudos, em breve mais dicas.

Segue para download os exemplos:  Ex_Include_Require

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