quarta-feira, 1 de agosto de 2012

Heredoc e Nowdoc no PHP

Esse será mais um dos meus posts estilo "The Flash" com o objetivo de te auxiliar para a certificação Zend.

Heredoc e Nowdoc o que é isso?
Vou responder essa pergunta com poucas palavras o que acha?

Heredoc e Nowdoc foram criados para strings multilinhas. E ponto, é só isso.

Legal, mais pq 2 funções e não uma?


Me diga, quando vc cria uma string com aspas "duplas" e exibe ela na tela o php não interpreta tudo dessa string? Exemplo:
 
  1. $nome = "Paulo";
  2. echo "Oi $nome"; // Exibe Oi Paulo

E quando vc não quer que interprete o que vc faz? Vc usa o Apóstrofo (vulgo aspas simples) correto? Ficando assim;
 
  1. $nome = "Paulo";
  2. echo 'Oi $nome'; // Exibe Oi $nome


Legal! Pois é por isso que existe o Heredoc e o Nowdoc, onde o Heredoc interpreta variaveis e escape, enquanto que o Nowdoc não.

Se associarmos isso podemos dizer que 
Heredoc = ""
Nowdoc = ''



Legal né?


Ta, mas e como eu uso eles?


A utilização é bem simples, utilizamos o delimitador <<< seguido de um nome qualquer como marcação, e fechamos com o nome seguido de ponto e virgula.

Por exemplo:
Utilizando o heredoc
  1. $heredoc = <<<EXEMPLO
  2.     Texto texto
  3.     Texto texto  
  4. EXEMPLO;
   
UTILIZANDO O NOWDOC
  1. $nowdoc: <<<'EXEMPLO'
  2.     Texto texto
  3.     Texto texto  
  4. EXEMPLO;

    Veja que o que muda do heredoc para o now doc na questão da syntax é que o Nowdoc tem o Apóstrofo (vulgo aspas simples) enquanto que o Heredoc não.


 E ai, simples não é? Se vc não entendeu então da uma xingada aqui abaixo.

OBS: Nowdoc só esta disponível a partir do PHP 5.3

 FUI!

2 comentários:

  1. e por que um tem:
    $heredoc =
    e o outro
    $nowdoc:

    esses dois pontos está certo?

    ResponderExcluir