• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

pedrotuga

[PHP]O snippet mais pequeno de todos - dump de variável

13 mensagens neste tópico

A função print_r é das coisas mais práticas alguma vez inventadas no que diz respeito a debugging.

No entanto, como a esmagadora maioria dos programadores de php enviam o output para uma página HTML que em geral abrem com um browser, o facto de o html não interpretar as quebras de linha torna o seu output pouco cómodo de se ler.

Um wraperzinho com as tags <pre> do html resolve o problema :(.. e para quê etar a escrever a mesma coisa vezes sem conta no mesmo script?

function print_r2($var){
echo "<pre>";
print_r($var);
echo "</pre>";
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que eu costumo usar é mto mais bonito:

//Funcao responsavel por imprimir qualquer variavel (objecto, array, ...) de modo simples e eficaz para debug
function debug($var) {
echo "<pre>";
print_r($var);
echo "</pre>";
}

Eheh, jk :(

Já agora, outro que uso:

//Recebe um texto e passa-o ao javascript
function js($text) {
echo("	<script type=\"text/javascript\">
			$text
		</script>");
}

E por fim outro:

function dbquery($sql) {
if(!($res = mysql_query($sql))) {
	echo "<br><br>A seguinte query produziu um erro: $sql<br>";
	echo mysql_error();
	echo "<br>Avise o administrador deste erro<br><br>";
	exit();
}
return $res;
}

Tenho mais alguns caso queiram é só dizer :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

um wrapper é qualquer coisa que envolve outra...

em programação, qualquer comando que tenha "tag" de abertura, o código em si e depois a "tag" de fecho, "envolvendo" o código, como é o caso do <pre>......</pre>, <div>.....</div>, <td>...</td>, etc, em que o código a executar fica envolvido pelas "tags" de abertura e fecho...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois mas não percebi qual a boa utilização do print_r visto que ele devolve algo assim:

Array

(

    [0] => Tiago

    [1] => Miguel

    [2] => Ferreira

    [3] => Palhota

)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o print_r() permite-te visualizar o conteudo completo de qualquer variável, mas é mais utilizado para verificar o conteudo de arrays... se for uma string ou um float, por exemplo, o que te mostra é o valor da variável, como se fizesses echo... se for um array, mostra-te os valores dentro de cada indice, na sua totalidade, inclusivé se tiveres arrays dentro de um dos indices...

ex:

Array

{

    [a] => php

    => codigo

    [c] => Array

          {

                [0] => funções

                [1] => variáveis

                [2] => snippets

          {

    [d] => html

    [e] => javascript

{

experimenta a fazer echo ao array e vê o resultado :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim foi o que eu fiz em cima, mas não vou fazer output para o utilizador com o print_r, a aparecer o 0 o 1 e o 2

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não, para o utilizador não fazes nada disso, dá imenso jeito para debugging, quando alguma coisa tá a correr mal e precisas de saber o conteúdo de uma variável, por exemplo. Particularmente útil para ver o estado das variáveis $_POST e $_SESSION, por exemplo, embora eu costuma usar o var_dump(), que para além do conteúdo das variáveis mostra também o tipo (integer, string, array, etc.) e comprimento das mesmas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já conhecia isso :( já utilizo o <pre></pre> desde junho deste ano :D E ja utilizei em alguns scripts que postei aqui no p@p.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Kingless, isto não é nada de novo.

Claro.. :( Mas para alguns pode ser novo...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

print_r? o var_dump é-me mais "conviniente" (mania ;)) ;)

echo "<pre>";
var_dump($me);
echo "</pre>";

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora