{"id":521,"date":"2013-10-16T15:45:40","date_gmt":"2013-10-16T18:45:40","guid":{"rendered":"http:\/\/thiagosantos.com\/blog\/?p=521"},"modified":"2014-09-26T17:08:58","modified_gmt":"2014-09-26T20:08:58","slug":"1-echo-print-var_dump-print_r","status":"publish","type":"post","link":"https:\/\/thiagosantos.com\/blog\/521\/php\/1-echo-print-var_dump-print_r\/","title":{"rendered":"Parte 1 &#8211; &#8220;echo print var_dump print_r&#8221;"},"content":{"rendered":"<p><span style=\"line-height: 1.714285714; font-size: 1rem;\">Para inicio de conversa, vamos ao b\u00e1sico: &#8220;cuspir informa\u00e7\u00e3o na tela&#8221;. Nesse post ser\u00e3o mostrados com exemplos as principais &#8220;fun\u00e7\u00f5es&#8221; que utilizo para a impress\u00e3o de informa\u00e7\u00e3o na tela, e qual delas podem ser \u00fateis no debug.<\/span><\/p>\n<p><a name=\"echo\"><\/a><span style=\"color: #3366ff;\"><strong>echo e print<\/strong><\/span><\/p>\n<p>Aos apressados, r\u00e1pido exemplo de utiliza\u00e7\u00e3o.<\/p>\n<pre lang=\"php\">&lt;?php\r\n\r\necho \"Ol\u00e1 Thiago\";\r\necho 'Ol\u00e1 Thiago';\r\necho (\"Ol\u00e1 Thiago\");\r\necho \"Ol\u00e1 \", \"Thiago\";\r\necho (\"Ol\u00e1\", \"Thiago\");\r\nprint \"Ol\u00e1 Thiago\";\r\nprint (\"Ol\u00e1 Thiago\");\r\n\/\/a sa\u00edda para os \"echos\" e os print ser\u00e3o\r\n\/\/Ol\u00e1 Thiago;\r\n\r\n?&gt;<\/pre>\n<blockquote><p><span style=\"color: #339966;\">O uso do <span style=\"text-decoration: underline;\"><em>echo<\/em><\/span> tem um comportamento diferenciado e requer certa aten\u00e7\u00e3o. O echo n\u00e3o \u00e9 uma fun\u00e7\u00e3o do PHP e sim um construtor da linguagem. Por conta dessa caracter\u00edstica o <span style=\"text-decoration: underline;\"><em>echo<\/em><\/span> dispensa o uso de par\u00eanteses. Logo \u00e9 poss\u00edvel us\u00e1-lo passando uma string diretamente (linhas 3, 4 e 5). Para saber mais sobre os construtores da linguagem PHP de uma olhada <a title=\"Lista de palavras reservadas no PHP\" href=\"http:\/\/php.net\/manual\/pt_BR\/reserved.keywords.php\">nesse link<\/a>.<\/span><\/p>\n<p><span style=\"color: #339966;\"><!--more--><\/span><\/p><\/blockquote>\n<p>A utiliza\u00e7\u00e3o do echo pode ser feita em qualquer parte do c\u00f3digo em um arquivo PHP, n\u00e3o adianta que n\u00e3o vai funcionar em arquivos com a extens\u00e3o diferente da <em>.php<\/em> a n\u00e3o ser \u00e9 claro que estejam essas extens\u00f5es configuradas para serem interpretadas pelo PHP.<\/p>\n<pre lang=\"php\">&lt;html&gt;\r\n&lt;head&gt;\r\n&lt;title&gt;&lt;?php echo \"Titulo da p\u00e1gina\";?&gt;&lt;\/title&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n&lt;h1&gt;Meu site em PHP&lt;\/h1&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;<\/pre>\n<p><span style=\"color: #3366ff;\"><strong>\u00a0var_dump e print_r<\/strong><\/span><\/p>\n<p>Eu utilizo muito essas duas duas fun\u00e7\u00f5es para debugar vari\u00e1veis. N\u00e3o as utilizo para um impress\u00e3o de um conte\u00fado normal como eu f\u00e1ria com o <em>echo<\/em> ou <em>print<\/em>. Normalmente utilizo o <em>var_dump<\/em> para a impress\u00e3o do conte\u00fado de vari\u00e1veis quando eu preciso saber o tipo do valor (se \u00e9 inteiro, string, float &#8230; ) e o <em>print_r<\/em> quando eu s\u00f3 preciso ver o analisar o conte\u00fado.<\/p>\n<p>Exemplos com vari\u00e1veis simples.<\/p>\n<pre lang=\"php\">&lt;?php\r\n\r\n$nome = \"Thiago\";\r\n$idade = 26;\r\n\r\n\/\/ utilizando o print_r\r\n\r\nprint_r($nome);\r\nprint_r($idade);\r\n\/** a sa\u00edda aqui ser\u00e1:\r\n *  Thiago\r\n *  26\r\n *\/\r\n\r\n\/\/ usando o var_dump\r\n\r\nvar_dump($nome);\r\nvar_dump($idade);\r\n\r\n\/**\r\n * A sa\u00edda aqui ser\u00e1\r\n * string(6) \"Thiago\"\r\n * int(26)\r\n *\/\r\n\r\n?&gt;<\/pre>\n<p>Exemplos com vari\u00e1veis complexas.<\/p>\n<pre lang=\"php\">&lt;?php\r\n$obj = new StdClass();\r\n$obj-&gt;nome = \"Thiago\";\r\n$obj-&gt;obj = new StdClass();\r\n$obj-&gt;obj-&gt;idade = 26;\r\n\r\nvar_dump($obj);\r\n\r\n\/**\r\n * a sua sa\u00edda ser\u00e1: \r\n\r\n * object(stdClass)#1 (2) {\r\n *   [\"nome\"]=&gt;\r\n *   string(6) \"Thiago\"\r\n *   [\"obj\"]=&gt;\r\n *   object(stdClass)#2 (1) {\r\n *     [\"idade\"]=&gt;\r\n *     int(26) \r\n *  }\r\n * }\r\n**\/\r\n\r\nprint_r($obj);\r\n\r\n\/**\r\n * a sua sa\u00edda ser\u00e1:\r\n\r\n * stdClass Object\r\n * (\r\n *    [nome] =&gt; Thiago\r\n *    [obj] =&gt; stdClass Object\r\n *        (\r\n *            [idade] =&gt; 26\r\n *        )\r\n *\r\n * )\r\n*\/\r\n?&gt;<\/pre>\n<p>Fica vis\u00edvel a diferen\u00e7a entre as duas chamadas. O\u00a0<em>var_dump<\/em> \u00e9 muito mais rico em detalhe que o <em>print_r<\/em> que em compensa\u00e7\u00e3o \u00e9 muito mais f\u00e1cil de ler e entender. A utiliza\u00e7\u00e3o dos dois vai variar do seu objetivo ao &#8220;cuspir&#8221; o conte\u00fado de uma vari\u00e1vel. Se o seu objetivo \u00e9 ver o que tem dentro r\u00e1pido pode usar o <em>print_r<\/em> se o objeto \u00e9 ver exatamente o que tem e qual o tipo de dados armazenados na vari\u00e1vel ent\u00e3o a melhor op\u00e7\u00e3o \u00e9 o\u00a0<em>var_dump<\/em>.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\"><strong>Exercicios<\/strong><\/span><\/p>\n<p>Corrija os c\u00f3digos abaixo:<br \/>\nTeste linha a linha numerando as com erro e sugerindo a corre\u00e7\u00e3o na parte de coment\u00e1rio ai embaixo.<\/p>\n<p>&nbsp;<\/p>\n<pre lang=\"php\">&lt;?php\r\n\r\nprint (\"Ol\u00e1 \", \"Thiago\");\r\necho \"Thiago\";\r\nvar_dump(echo \"Thiago\");\r\nprint_r(\"Thiago\");\r\nvar_dump(26);\r\n\r\n?&gt;<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Para inicio de conversa, vamos ao b\u00e1sico: &#8220;cuspir informa\u00e7\u00e3o na tela&#8221;. Nesse post ser\u00e3o mostrados com exemplos as principais &#8220;fun\u00e7\u00f5es&#8221; que utilizo para a impress\u00e3o de informa\u00e7\u00e3o na tela, e qual delas podem ser \u00fateis no debug. echo e print Aos apressados, r\u00e1pido exemplo de utiliza\u00e7\u00e3o. &lt;?php echo &#8220;Ol\u00e1 Thiago&#8221;; echo &#8216;Ol\u00e1 Thiago&#8217;; echo (&#8220;Ol\u00e1 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[156,4],"tags":[],"class_list":["post-521","post","type-post","status-publish","format-standard","hentry","category-iniciantes","category-php"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Parte 1 - &quot;echo print var_dump print_r&quot; - Pereira, Thiago Santos.<\/title>\n<meta name=\"description\" content=\"Parte 1 e inicial do curso de PHP do Thiago Santos, come\u00e7ando por partes.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thiagosantos.com\/blog\/521\/php\/1-echo-print-var_dump-print_r\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Parte 1 - &quot;echo print var_dump print_r&quot; - Pereira, Thiago Santos.\" \/>\n<meta property=\"og:description\" content=\"Parte 1 e inicial do curso de PHP do Thiago Santos, come\u00e7ando por partes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thiagosantos.com\/blog\/521\/php\/1-echo-print-var_dump-print_r\/\" \/>\n<meta property=\"og:site_name\" content=\"Pereira, Thiago Santos.\" \/>\n<meta property=\"article:published_time\" content=\"2013-10-16T18:45:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-09-26T20:08:58+00:00\" \/>\n<meta name=\"author\" content=\"Pereira, Thiago Santos\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Pereira, Thiago Santos\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/thiagosantos.com\/blog\/521\/php\/1-echo-print-var_dump-print_r\/\",\"url\":\"https:\/\/thiagosantos.com\/blog\/521\/php\/1-echo-print-var_dump-print_r\/\",\"name\":\"Parte 1 - \\\"echo print var_dump print_r\\\" - Pereira, Thiago Santos.\",\"isPartOf\":{\"@id\":\"https:\/\/thiagosantos.com\/blog\/#website\"},\"datePublished\":\"2013-10-16T18:45:40+00:00\",\"dateModified\":\"2014-09-26T20:08:58+00:00\",\"author\":{\"@id\":\"https:\/\/thiagosantos.com\/blog\/#\/schema\/person\/56683334c52027e200fd9270c17c629d\"},\"description\":\"Parte 1 e inicial do curso de PHP do Thiago Santos, come\u00e7ando por partes.\",\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/thiagosantos.com\/blog\/521\/php\/1-echo-print-var_dump-print_r\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/thiagosantos.com\/blog\/#website\",\"url\":\"https:\/\/thiagosantos.com\/blog\/\",\"name\":\"Pereira, Thiago Santos.\",\"description\":\"the fun of code.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/thiagosantos.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/thiagosantos.com\/blog\/#\/schema\/person\/56683334c52027e200fd9270c17c629d\",\"name\":\"Pereira, Thiago Santos\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/thiagosantos.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ed936469f86e5f07085e7540b2c0a115?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ed936469f86e5f07085e7540b2c0a115?s=96&d=mm&r=g\",\"caption\":\"Pereira, Thiago Santos\"},\"description\":\"Um cara que mora no Rio e n\u00e3o sabe nadar.\",\"sameAs\":[\"http:\/\/thiagosantos.com\"],\"url\":\"https:\/\/thiagosantos.com\/blog\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Parte 1 - \"echo print var_dump print_r\" - Pereira, Thiago Santos.","description":"Parte 1 e inicial do curso de PHP do Thiago Santos, come\u00e7ando por partes.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thiagosantos.com\/blog\/521\/php\/1-echo-print-var_dump-print_r\/","og_locale":"pt_BR","og_type":"article","og_title":"Parte 1 - \"echo print var_dump print_r\" - Pereira, Thiago Santos.","og_description":"Parte 1 e inicial do curso de PHP do Thiago Santos, come\u00e7ando por partes.","og_url":"https:\/\/thiagosantos.com\/blog\/521\/php\/1-echo-print-var_dump-print_r\/","og_site_name":"Pereira, Thiago Santos.","article_published_time":"2013-10-16T18:45:40+00:00","article_modified_time":"2014-09-26T20:08:58+00:00","author":"Pereira, Thiago Santos","twitter_misc":{"Escrito por":"Pereira, Thiago Santos","Est. tempo de leitura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/thiagosantos.com\/blog\/521\/php\/1-echo-print-var_dump-print_r\/","url":"https:\/\/thiagosantos.com\/blog\/521\/php\/1-echo-print-var_dump-print_r\/","name":"Parte 1 - \"echo print var_dump print_r\" - Pereira, Thiago Santos.","isPartOf":{"@id":"https:\/\/thiagosantos.com\/blog\/#website"},"datePublished":"2013-10-16T18:45:40+00:00","dateModified":"2014-09-26T20:08:58+00:00","author":{"@id":"https:\/\/thiagosantos.com\/blog\/#\/schema\/person\/56683334c52027e200fd9270c17c629d"},"description":"Parte 1 e inicial do curso de PHP do Thiago Santos, come\u00e7ando por partes.","inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thiagosantos.com\/blog\/521\/php\/1-echo-print-var_dump-print_r\/"]}]},{"@type":"WebSite","@id":"https:\/\/thiagosantos.com\/blog\/#website","url":"https:\/\/thiagosantos.com\/blog\/","name":"Pereira, Thiago Santos.","description":"the fun of code.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thiagosantos.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/thiagosantos.com\/blog\/#\/schema\/person\/56683334c52027e200fd9270c17c629d","name":"Pereira, Thiago Santos","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/thiagosantos.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ed936469f86e5f07085e7540b2c0a115?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ed936469f86e5f07085e7540b2c0a115?s=96&d=mm&r=g","caption":"Pereira, Thiago Santos"},"description":"Um cara que mora no Rio e n\u00e3o sabe nadar.","sameAs":["http:\/\/thiagosantos.com"],"url":"https:\/\/thiagosantos.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/thiagosantos.com\/blog\/wp-json\/wp\/v2\/posts\/521","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thiagosantos.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thiagosantos.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thiagosantos.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thiagosantos.com\/blog\/wp-json\/wp\/v2\/comments?post=521"}],"version-history":[{"count":20,"href":"https:\/\/thiagosantos.com\/blog\/wp-json\/wp\/v2\/posts\/521\/revisions"}],"predecessor-version":[{"id":545,"href":"https:\/\/thiagosantos.com\/blog\/wp-json\/wp\/v2\/posts\/521\/revisions\/545"}],"wp:attachment":[{"href":"https:\/\/thiagosantos.com\/blog\/wp-json\/wp\/v2\/media?parent=521"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thiagosantos.com\/blog\/wp-json\/wp\/v2\/categories?post=521"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thiagosantos.com\/blog\/wp-json\/wp\/v2\/tags?post=521"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}