{"id":5871,"date":"2020-10-13T18:21:53","date_gmt":"2020-10-13T18:21:53","guid":{"rendered":"https:\/\/www.homehost.com.br\/blog\/?p=5871"},"modified":"2023-06-08T23:55:04","modified_gmt":"2023-06-09T02:55:04","slug":"php-8","status":"publish","type":"post","link":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/","title":{"rendered":"PHP 8: conhe\u00e7a as melhorias da nova vers\u00e3o do PHP"},"content":{"rendered":"\n<p>J\u00e1 estamos prontos para a chegada do <strong>PHP 8<\/strong>! E voc\u00ea? Tamb\u00e9m est\u00e1 aguardando ansiosamente? Nesse artigo vamos destrinchar um pouquinho das novidades que v\u00eam por a\u00ed!<\/p>\n\n\n\n<p>Se voc\u00ea ainda n\u00e3o conhece o <strong>PHP<\/strong>, recomendamos a leitura do nosso <a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curso-de-php\/\">Curso de Introdu\u00e7\u00e3o<\/a> ao <strong>PHP<\/strong>. Mas se j\u00e1 conhece, fique a vontade para continuar sua leitura e vamos juntos desvendar essas novidade!<\/p>\n\n\n\n<p>Voc\u00ea encontrar\u00e1 nesse artigo os seguintes t\u00f3picos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php-8-e-suas-novidades\/#lancamento_do_php_8\" rel=\"nofollow\"><strong>O Lan\u00e7amento do PHP 8<\/strong><\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php-8-e-suas-novidades\/#novidades\" rel=\"nofollow\"><strong>As principais Novidades do PHP 8<\/strong><\/a>\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php-8-e-suas-novidades\/#jit\" rel=\"nofollow\"><strong>Compilador JIT (Just in Time)<\/strong><\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php-8-e-suas-novidades\/#avisos_erros\" rel=\"nofollow\"><strong>Avisos de Erros mais elaborados e precisos<\/strong><\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php-8-e-suas-novidades\/#union_types_v2\" rel=\"nofollow\"><strong>Union Types V2<\/strong><\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php-8-e-suas-novidades\/#weak_maps\" rel=\"nofollow\"><strong>Classe Weak Map<\/strong><\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php-8-e-suas-novidades\/#dom\" rel=\"nofollow\"><strong>Compatibilidade do PHP 8 com os padr\u00f5es atuais de DOM<\/strong><\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php-8-e-suas-novidades\/#throw_expressions\" rel=\"nofollow\"><strong>Throw Expressions no PHP 8<\/strong><\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php-8-e-suas-novidades\/#construct\" rel=\"nofollow\"><strong>Mudan\u00e7as no m\u00e9todo Construtor<\/strong><\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php-8-e-suas-novidades\/#funcoes\" rel=\"nofollow\"><strong>Novas Fun\u00e7\u00f5es no PHP 8<\/strong><\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php-8-e-suas-novidades\/#outras_novidades\" rel=\"nofollow\"><strong>Outras mudan\u00e7as e novidades do PHP 8<\/strong><\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php-8-e-suas-novidades\/#conclusoes\" rel=\"nofollow\"><strong>Conclus\u00f5es sobre o PHP 8<\/strong><\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"lancamento_do_php_8\">O Lan\u00e7amento do PHP 8<\/h2>\n\n\n\n<p>O <strong>PHP 8<\/strong> j\u00e1 vem sendo debatido e desenvolvido h\u00e1 um bom tempo. Mas, conforme a <a href=\"https:\/\/wiki.php.net\/todo\/php80\" target=\"_blank\" rel=\"noreferrer noopener\">p\u00e1gina<\/a> do <strong>PHP 8<\/strong>, agora j\u00e1 sabemos que a data de seu lan\u00e7amento est\u00e1 programada para o dia <strong>26 de novembro de 2020<\/strong>!<\/p>\n\n\n\n<p>Por\u00e9m, antes de come\u00e7armos a falar sobre as novidades, precisamos esclarecer para voc\u00eas que o <strong>PHP 8<\/strong> ainda est\u00e1 em per\u00edodo de desenvolvimento. Portanto, estamos utilizando como base as informa\u00e7\u00f5es de funcionalidades j\u00e1 debatidas, votadas, aceitas e implementas, segundo a <a href=\"https:\/\/wiki.php.net\/rfc\" target=\"_blank\" rel=\"noreferrer noopener\">p\u00e1gina de RFC<\/a> do pr\u00f3prio PHP.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"novidades\">As principais Novidades do PHP 8<\/h2>\n\n\n\n<p>A nova vers\u00e3o do PHP, o PHP 8.0 est\u00e1 sendo muito debatida e esperada pelos desenvolvedores. Isso pois ela promete uma s\u00e9ria de melhorias e mudan\u00e7as que impactar\u00e3o no futuro dessa linguagem de programa\u00e7\u00e3o.<\/p>\n\n\n\n<p>Conforme falamos anteriormente, o <strong>PHP 8<\/strong> ainda est\u00e1 em desenvolvimento, mas nesse t\u00f3pico vamos abordar sobre as principais novidades j\u00e1 implementadas na pr\u00f3xima vers\u00e3o dessa poderosa linguagem.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"jit\">Compilador JIT (Just in Time)<\/h3>\n\n\n\n<p>De longe, essa \u00e9 uma das novidades mais esperadas para o <strong>PHP 8<\/strong>! Isso pois o <strong>JIT Compiler<\/strong> (Just in Time) ir\u00e1 proporcionar um aumento de performance para diversas fun\u00e7\u00f5es! Principalmente quando se tratar de processamento de imagens e opera\u00e7\u00f5es de Machine Learning.<\/p>\n\n\n\n<p>Resumidamente, o <strong>JIT <\/strong>\u00e9 um compilador que faz parte da extens\u00e3o <a href=\"https:\/\/www.php.net\/manual\/en\/book.opcache.php\" target=\"_blank\" rel=\"noreferrer noopener\">Opcache<\/a>. Com o <strong>JIT<\/strong>, alguns <strong>Opcodes <\/strong>n\u00e3o precisar\u00e3o ser interpretados pela <strong>ZendVM<\/strong>, pois, essas instru\u00e7\u00f5es ser\u00e3o executadas diretamente a n\u00edvel de CPU. Por isso que voc\u00ea poder\u00e1 observar um grande ganho de desempenho para algumas instru\u00e7\u00f5es.<\/p>\n\n\n\n<p>No v\u00eddeo abaixo, voc\u00ea pode ver como o <strong>JIT <\/strong>entrega um resultado de desempenho bem mais r\u00e1pido que o encontrado no <strong>PHP 7<\/strong>.  Voc\u00ea pode encontrar o v\u00eddeo no Youtube, publicado por <a href=\"https:\/\/twitter.com\/zeevs\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Zeev Surasky,<\/a> co-autor da proposta <strong>PHP JIT<\/strong>. Na esquerda, ele apresenta o m\u00e9todo atualmente utilizado, j\u00e1 na direita, seria a mesma aplica\u00e7\u00e3o rodando com o <strong>JIT<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"PHP 7.0 vs JIT PoC\" width=\"800\" height=\"600\" src=\"https:\/\/www.youtube.com\/embed\/dWH65pmnsrI?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Atrav\u00e9s do <a href=\"https:\/\/gist.github.com\/dstogov\/12323ad13d3240aee8f1\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">benchmark Mandelbrot<\/a>, voc\u00ea pode ver a demonstra\u00e7\u00e3o de qualidade do JIT. Nele, voc\u00ea pode ver um desempenho do PHP 8 de mais de 4 vezes superior ao <strong>PHP 7.4<\/strong> (0,011 seg vs 0,046 seg no PHP 7.4).<\/p>\n\n\n\n<p>De uma forma geral, voc\u00ea poder\u00e1 observar grandes impactos de desempenho em opera\u00e7\u00f5es a n\u00edvel de CPU. <\/p>\n\n\n\n<p>Por\u00e9m, \u00e9 claro que o <strong>JIT <\/strong>tamb\u00e9m traz algumas desvantagens, e um dos principais \u00e9 que ele aumenta a probabilidade de novos BUGs surgirem. Ainda assim, caso isso aconte\u00e7a, j\u00e1 podemos esperar futuras corre\u00e7\u00f5es nas atualiza\u00e7\u00f5es posteriores para esses bugs. <\/p>\n\n\n\n<p>No <a href=\"https:\/\/wiki.php.net\/rfc\/jit\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">RFC sobre o JIT<\/a> voc\u00ea pode estar lendo mais sobre esse compilador e os resultados obtidos no<strong> PHP 8<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"avisos_erros\">Avisos de Erros mais elaborados e precisos<\/h3>\n\n\n\n<p>Um grande problema para todos desenvolvedor \u00e9 quando encontramos um erro. <\/p>\n\n\n\n<p>Atualmente, com o <strong>PHP, <\/strong>voc\u00ea j\u00e1 pode ver os avisos de erros. Mas, esses avisos ainda s\u00e3o gerados de forma b\u00e1sica. Por\u00e9m, no <strong>PHP 8.0<\/strong>, voc\u00ea j\u00e1 poder\u00e1 encontrar <a href=\"https:\/\/wiki.php.net\/rfc\/engine_warnings\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">avisos com explica\u00e7\u00f5es mais precisas<\/a>. <\/p>\n\n\n\n<p>Com certeza esse ser\u00e1 um grande diferencial para os programadores, pois economizar\u00e1 muito tempo para solucionar problemas em meio as diversas linhas de c\u00f3digo. Al\u00e9m de facilitar muito a vida de quem est\u00e1 aprendendo e iniciando na linguagem <strong>PHP<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"union_types_v2\">Union Types V2<\/h3>\n\n\n\n<p>Um<strong> Union Type<\/strong> ou &#8220;<strong>tipo de  uni\u00e3o<\/strong>&#8221; aceitam valores que podem ser de diferentes tipos. Por exemplo, uma mesma vari\u00e1vel poder\u00e1 consistir em dois tipos, em vez de um \u00fanico.<\/p>\n\n\n\n<p>Atualmente, o PHP ainda n\u00e3o oferece suporte a <strong>Union Types<\/strong>, com exce\u00e7\u00e3o da sintaxe&nbsp;<em>?type<\/em>&nbsp;e do tipo especial <em>iterable<\/em>. At\u00e9 ent\u00e3o, para utilizar <strong>Union Types<\/strong> era necess\u00e1rio que voc\u00ea <a href=\"https:\/\/docs.phpdoc.org\/latest\/guides\/types.html#multiple-types-combined\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">especificasse em phpdocs,<\/a> como por exemplo, utilizando o <em>myxed<\/em>.&nbsp;<\/p>\n\n\n\n<p>Por\u00e9m, a partir da vers\u00e3o PHP 8, voc\u00ea poder\u00e1 utilizar os Union Types. Dessa forma, o PHP passar\u00e1 a ter suporte a v\u00e1rios tipos de dados em sua estrutura, e n\u00e3o apenas um \u00fanico valor.<\/p>\n\n\n\n<p>Voc\u00ea poder\u00e1 aplicar a par\u00e2metros de m\u00e9todos e tamb\u00e9m no retorno de m\u00e9todos de suas classes. Para definir os tipos que uma vari\u00e1vel poder\u00e1 receber, bastar\u00e1 utilizar o sinal &#8220;<strong>|<\/strong>&#8221; (pipe). De uma forma resumida, a nova sintaxe ficar\u00e1 como no exemplo abaixo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function myFunction(int|float $number): int\n{\n  return round($number);\n}<\/code><\/pre>\n\n\n\n<p>Voc\u00ea pode ler mais sobre os&nbsp;<a href=\"https:\/\/wiki.php.net\/rfc\/union_types_v2\" target=\"_blank\" rel=\"noreferrer noopener\">Union Types v2<\/a>&nbsp;na RFC.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"weak_maps\">Classe Weak Map<\/h3>\n\n\n\n<p>Outra grande novidade do<strong> PHP 8<\/strong> \u00e9 a adi\u00e7\u00e3o da classe <strong>Weak Map<\/strong>. O Weak Map, ou mapa fraco, \u00e9 um objeto em que as chaves possuem referencias fracas, ou seja, elas n\u00e3o s\u00e3o impedidas de serem coletadas.<\/p>\n\n\n\n<p>Com a classe Weak Map voc\u00ea pode criar uma referencia para um objeto. Dessa forma, quando este objeto for removido, sua refer\u00eancia tamb\u00e9m ser\u00e1 removida.<\/p>\n\n\n\n<p>A partir do PHP 7.4 j\u00e1 havia suporte a refer\u00eancias fracas. Por\u00e9m, no PHP 8, ser\u00e1 introduzido a classe <strong>WeakMap<\/strong> para criar objetos a serem usados como chaves fracas de mapas. Dessa forma, eles poder\u00e3o ser removidos e destru\u00eddos do mapa se n\u00e3o houver mais refer\u00eancias ao objeto chave.<\/p>\n\n\n\n<p>A grande vantagem disso, \u00e9 que, em processos de longa dura\u00e7\u00e3o, evitar\u00e1 vazamentos de mem\u00f3ria. Portanto, isso resulta em melhora no desempenho.<\/p>\n\n\n\n<p>Voc\u00ea pode ler mais a respeito de <a href=\"https:\/\/wiki.php.net\/rfc\/weak_maps\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Weak Maps<\/a> atrav\u00e9s da sua RFC.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"dom\">Compatibilidade do PHP 8 com os padr\u00f5es atuais de DOM<\/h3>\n\n\n\n<p>O PHP 8 receber\u00e1 uma atualiza\u00e7\u00e3o na sua DOM API. Portanto, ser\u00e3o adcionado algumas interfaces e classes para tornar a API ext\/dom compat\u00edvel com o padr\u00e3o atual DOM, que est\u00e1 em contante atualiza\u00e7\u00e3o.<\/p>\n\n\n\n<p>Ou seja, agora o PHP 8 estar\u00e1 compat\u00edvel com as mudan\u00e7as atuais do padr\u00e3o DOM. Dessa forma, voc\u00ea conseguir\u00e1 manipular elementos DOM mais facilmente atrav\u00e9s do pr\u00f3prio PHP.<\/p>\n\n\n\n<p>Voc\u00ea pode ler  <a href=\"https:\/\/wiki.php.net\/rfc\/dom_living_standard_api\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">mais sobre isso na RFC dessa proposta.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"throw_expressions\">Throw Expressions no PHP 8<\/h3>\n\n\n\n<p>Atualmente, no PHP, voc\u00ea pode utilizar o <strong>throw<\/strong> como uma instru\u00e7\u00e3o ou afirma\u00e7\u00e3o. Por\u00e9m, at\u00e9 a vers\u00e3o 7.4, \u00e9 imposs\u00edvel utiliza-lo em locais em que apenas uma express\u00e3o fosse permitida. <\/p>\n\n\n\n<p>Visando resolver esse problema, no PHP 8 o <strong>throw<\/strong> passar\u00e1 a ser uma express\u00e3o. Dessa forma, voc\u00ea poder\u00e1 utiliza-lo no lugar de express\u00f5es. Portanto, ser\u00e1 poss\u00edvel utiliza-lo em fun\u00e7\u00f5es de seta, Operador de coalesc\u00eancia (Null Coalesce), operadores tern\u00e1rios e elvis, etc.<\/p>\n\n\n\n<p>Na pr\u00f3pria <a href=\"https:\/\/wiki.php.net\/rfc\/throw_expression\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">RFC sobre o Throw<\/a>, voc\u00ea pode encontrar diversos exemplos de como voc\u00ea poder\u00e1 utilizar o <strong>throw<\/strong> a partir do <strong>PHP 8<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"construct\">Mudan\u00e7as no m\u00e9todo Construtor<\/h3>\n\n\n\n<p>Se tratando de sintaxe, uma grande mudan\u00e7a que ser\u00e1 proveitosa tanto para desenvolvedores iniciantes quanto para quem j\u00e1 utiliza o PHP a mais tempo \u00e9 as mudan\u00e7as no m\u00e9todo construtor.<\/p>\n\n\n\n<p>Na programa\u00e7\u00e3o Orientada a Objetos, o m\u00e9todo construtor \u00e9 um dos mais importantes para uma classe. Portanto, o PHP 8 se prop\u00f5e a simplifica-lo.<\/p>\n\n\n\n<p>Vamos utilizar como exemplo a cria\u00e7\u00e3o de uma classe &#8220;Pessoa&#8221;. Dentro dessa classe, armazenaremos informa\u00e7\u00f5es de nome, idade e altura. Atualmente, no php 7.4, voc\u00ea precisa fazer o c\u00f3digo como no exemplo abaixo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class pessoa{\n    public string $nome;\n    public int $idade;\n    public float $altura;\n\n    public function __construct(\n        string $nome,\n        int $idade,\n        float $altura\n    ){\n        $this-&gt;nome= $nome;\n        $this-&gt;idade= $idade;\n        $this-&gt;altura= $altura;\n    }\n}<\/code><\/pre>\n\n\n\n<p>Se voc\u00ea observar bem, perceber\u00e1 que voc\u00ea precisou repetir o nome dos atributos tr\u00eas vezes. Portanto, isso acaba tornando o c\u00f3digo &#8220;redundante&#8221;. Pensando nisso, no PHP 8, com m\u00e9todo contrutor voc\u00ea conseguir\u00e1 reescrever a mesma classe conforme o exemplo abaixo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Pessoa{\n    public function __construct(\n        public string $nome,\n        public int $idade,\n        public float $altura\n    ) {\n\n    }\n}<\/code><\/pre>\n\n\n\n<p>Observe que, agora, voc\u00ea poder\u00e1 escrever a mesma classe por\u00e9m com bem menos linhas de c\u00f3digo. Al\u00e9m disso, torna o c\u00f3digo mais simples de se ler e entender. Portanto, as mudan\u00e7as do m\u00e9todo construtor do PHP 8 ser\u00e3o muito interessante para os desenvolvedores.<\/p>\n\n\n\n<p>Por\u00e9m, \u00e9 importante que voc\u00ea saiba que essa funcionalidade possuir\u00e1 algumas exce\u00e7\u00f5es. Voc\u00ea apenas conseguir\u00e1 utilizar esse recurso em m\u00e9todos construtores para classes n\u00e3o abstratas. Portanto, para entender melhor esse assunto, recomendamos que voc\u00ea leia a <a href=\"https:\/\/wiki.php.net\/rfc\/constructor_promotion\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">RFC sobre a modifica\u00e7\u00e3o do m\u00e9todo construtor<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"funcoes\">Novas Fun\u00e7\u00f5es no PHP 8<\/h3>\n\n\n\n<p>Para finalizarmos nossa lista, n\u00e3o podemos deixar de comentar sobre tr\u00eas novas fun\u00e7\u00f5es que ser\u00e3o acrescentadas ao PHP. S\u00e3o elas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>str_contains<\/li>\n\n\n\n<li>str_starts_with() e str_ends_with()<\/li>\n\n\n\n<li>get_debug_type<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">A fun\u00e7\u00e3o str_contains<\/h4>\n\n\n\n<p>A nova fun\u00e7\u00e3o <strong>str_contains <\/strong>permite realizar uma busca dentro de uma string.<\/p>\n\n\n\n<p>Sua s\u00edntaxe ser\u00e1 como no exemplo abaixo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>str_contains ( string $haystack , string $needle ) : bool<\/code><\/pre>\n\n\n\n<p>Esta sintaxe significa que ser\u00e1 executado uma verifica\u00e7\u00e3o para indicar se <strong><em>$needle<\/em><\/strong> est\u00e1 presente dentro da string <em><strong>$haystack<\/strong><\/em>. Caso sim, ela retornar\u00e1 o valor booleano <strong>true<\/strong>. Caso n\u00e3o esteja, ent\u00e3o, retornar\u00e1 <strong>false<\/strong>.<\/p>\n\n\n\n<p>Portanto, agora podemos utilizar a fun\u00e7\u00e3o str_contains para escrever o c\u00f3digo como no exemplo abaixo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$string = 'Frase de exemplo';\n$verificar= 'exemplo';\n\nif (str_contains($string, $verificar)) {\n\techo \"A String foi encontrada\";\n} else {\n\techo \"A String n\u00e3o foi encontrada\";\n}<\/code><\/pre>\n\n\n\n<p>Como voc\u00ea pode perceber, isso tornar\u00e1 a busca dentro de uma string mais leg\u00edvel e menos propenso a erros.<\/p>\n\n\n\n<p>Voc\u00ea pode estar lendo a <a href=\"https:\/\/wiki.php.net\/rfc\/str_contains\" target=\"_blank\" rel=\"noreferrer noopener\">RFC sobre essa fun\u00e7\u00e3o<\/a> para poder verificar todas suas caracter\u00edsticas.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">As fun\u00e7\u00f5es str_starts_with() e str_ends_with()<\/h4>\n\n\n\n<p>As <strong><a href=\"https:\/\/wiki.php.net\/rfc\/add_str_starts_with_and_ends_with_functions\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">fun\u00e7\u00f5es str_starts_with() e str_ends_with()<\/a><\/strong> funcionam parecidos com a fun\u00e7\u00e3o anterior, a<strong> str_contains<\/strong>. Por\u00e9m, a diferen\u00e7a \u00e9 que elas verificam se um string come\u00e7a ou termina com determinada string.<\/p>\n\n\n\n<p>Sua similaridade com <strong>str_contains <\/strong>tamb\u00e9m se d\u00e1 pela sintaxe. Veja nos c\u00f3digos de exemplo abaixo a sintaxe da <strong>str_starts_with()<\/strong> e <strong>str_ends_with()<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>str_starts_with (string $haystack , string $needle) : bool\nstr_ends_with (string $haystack , string $needle) : bool\n<\/code><\/pre>\n\n\n\n<p>Portanto, quando voc\u00ea utilizar essa fun\u00e7\u00f5es, ser\u00e1 poss\u00edvel economizar no uso da CPU. Isso acontece pois n\u00e3o ser\u00e1 necess\u00e1rio percorrer por toda uma string, a fun\u00e7\u00e3o ir\u00e1 verificar apenas o inicio ou o final.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">A fun\u00e7\u00e3o get_debug_type<\/h4>\n\n\n\n<p>A nova fun\u00e7\u00e3o que chegar\u00e1 junto ao PHP 8 \u00e9 a <a href=\"https:\/\/wiki.php.net\/rfc\/get_debug_type\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">get_debug_type<\/a>. Com ela, voc\u00ea poder\u00e1 retornar o tipo de dado de uma vari\u00e1vel.<\/p>\n\n\n\n<p>Portanto, voc\u00ea pode perceber que ela \u00e9 bem parecida com a fun\u00e7\u00e3o j\u00e1 existente gettype(). Por\u00e9m, a get_debug_type() representa uma melhoria para o PHP, pois ela consegue retornar a verifica\u00e7\u00e3o de tipo.<\/p>\n\n\n\n<p>Voc\u00ea pode ver na pr\u00f3pria <a href=\"https:\/\/wiki.php.net\/rfc\/get_debug_type\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">RFC<\/a> as principais diferen\u00e7as de retornos entre as fun\u00e7\u00f5es get_debug_type() e gettype()<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"outras_novidades\">Outras mudan\u00e7as e novidades do PHP 8<\/h2>\n\n\n\n<p>Al\u00e9m das novidades apresentadas nos t\u00f3picos anteriores, o PHP 8 tamb\u00e9m receber\u00e1 outras mudan\u00e7as e novidades.<\/p>\n\n\n\n<p>A partir do PHP 8, as matrizes poder\u00e3o ser iniciadas a partir de um \u00edndice negativo. Ou seja, se voc\u00ea iniciar uma <a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-array\/\" target=\"_blank\" rel=\"noreferrer noopener\">Array <\/a>atrav\u00e9s de um \u00edndice -5, ela ser\u00e1 continuada como -4,-3,-2&#8230; Atualmente, no PHP, as Arrays iniciadas com \u00edndices negativos, continuam automaticamente a partir do \u00edndice 0.<\/p>\n\n\n\n<p>At\u00e9 o PHP 7.4, se voc\u00ea quiser acrescentar uma anota\u00e7\u00e3o a partir de um atributo, voc\u00ea precisa utilizar os &nbsp;doc-comments. Por\u00e9m, a partir do PHP 8, voc\u00ea poder\u00e1 utilizar os <a href=\"https:\/\/wiki.php.net\/rfc\/attributes_v2\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Atributos v2<\/a>.<\/p>\n\n\n\n<p>Outra novidade \u00e9 que agora, voc\u00ea tamb\u00e9m poder\u00e1 utilizar as <a href=\"https:\/\/wiki.php.net\/rfc\/trailing_comma_in_parameter_list\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">v\u00edrgulas de rastreamento (trailing comma)<\/a> com fun\u00e7\u00f5es, m\u00e9todos e fechamentos, ou seja, como lista de par\u00e2metros. Anteriormente, no PHP, s\u00f3 era poss\u00edvel utilizar as v\u00edrgulas de rastreamento em sintaxe de lista e em chamadas de fun\u00e7\u00f5es.<\/p>\n\n\n\n<p>Outra altera\u00e7\u00e3o de sintaxe que haver\u00e1 a partir do PHP 8 \u00e9 na busca atrav\u00e9s do nome da classe. Agora voc\u00ea poder\u00e1 <a href=\"https:\/\/wiki.php.net\/rfc\/class_name_literal_on_object\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">utilizar a sintaxe  ::class<\/a> nos objetos. <\/p>\n\n\n\n<p>Enfim, h\u00e1 diversas novidades e mudan\u00e7as chegando junto a atualiza\u00e7\u00e3o do PHP. Al\u00e9m de todas as j\u00e1 citadas, voc\u00ea pode encontrar outras. Portanto, voc\u00ea pode acompanhar todas essas novidades na <a href=\"https:\/\/wiki.php.net\/rfc#php_80\" target=\"_blank\" rel=\"noreferrer noopener\">RFC <\/a>do PHP 8.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusoes\">Conclus\u00f5es sobre o PHP 8<\/h2>\n\n\n\n<p>Depois da leitura de todo esse post, n\u00e3o h\u00e1 d\u00favidas de que o PHP 8 chegar\u00e1 com grande impacto na linguagem de <a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/servidor-web\/\">servidor <\/a>mais utilizada na web!<\/p>\n\n\n\n<p>N\u00f3s da <a href=\"https:\/\/www.homehost.com.br\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Homehost<\/a> estamos ansiosos pela chegada dessa vers\u00e3o! E agora que voc\u00ea j\u00e1 sabe o que podemos esperar com o PHP 8, tamb\u00e9m est\u00e1 empolgado como n\u00f3s?<\/p>\n\n\n\n<p>At\u00e9 o momento, o compilador Just in Time (JIT) \u00e9 uma das novidades mais comentadas. Por\u00e9m, n\u00f3s queremos saber de voc\u00ea o que achou das novidades e qual a sua preferida? Deixe um coment\u00e1rio e compartilhe essa publica\u00e7\u00e3o com todos os desenvolvedores PHP que voc\u00ea conhece e vamos juntos embarcar nessa novidade!<\/p>\n\n\n\n<p>Tamb\u00e9m n\u00e3o deixe de ler mais sobre o PHP, aqui no blog voc\u00ea encontrar\u00e1 diversos artigos falando sobre. Por exemplo, voc\u00ea pode ler sobre <a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/o-que-e-php\/\">o que \u00e9<\/a> o PHP, um <a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/curso-de-php\/\">curso de introdu\u00e7\u00e3o a linguagem<\/a>, sobre os <a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-date-format\/\">formatos de datas<\/a>, as <a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-try-catch\/\" target=\"_blank\" rel=\"noreferrer noopener\">fun\u00e7\u00f5es try e catch<\/a>, <a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-foreach\/\" target=\"_blank\" rel=\"noreferrer noopener\">la\u00e7os de itera\u00e7\u00e3o com foreach<\/a> e muito mais! <\/p>\n","protected":false},"excerpt":{"rendered":"<p>J\u00e1 estamos prontos para a chegada do PHP 8! E voc\u00ea? Tamb\u00e9m est\u00e1 aguardando ansiosamente? Nesse artigo vamos destrinchar um pouquinho das novidades que v\u00eam por a\u00ed! Se voc\u00ea ainda n\u00e3o conhece o PHP, recomendamos a leitura do nosso Curso de Introdu\u00e7\u00e3o ao PHP. Mas se j\u00e1 conhece, fique a vontade para continuar sua leitura [&hellip;]<\/p>\n","protected":false},"author":18,"featured_media":5886,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_helpful_status":1,"_lmt_disableupdate":"","_lmt_disable":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[20,6],"tags":[21,6519],"class_list":["post-5871","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","category-tutoriais","tag-php","tag-php-8"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PHP 8: conhe\u00e7a as melhorias da nova vers\u00e3o do PHP | Homehost<\/title>\n<meta name=\"description\" content=\"Fique por dentro de todas as mudan\u00e7as e novidades da atualiza\u00e7\u00e3o do PHP 8. Tudo que essa atualiza\u00e7\u00e3o promete trazer para o PHP.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP 8: conhe\u00e7a as melhorias da nova vers\u00e3o do PHP | Homehost\" \/>\n<meta property=\"og:description\" content=\"Fique por dentro de todas as mudan\u00e7as e novidades da atualiza\u00e7\u00e3o do PHP 8. Tudo que essa atualiza\u00e7\u00e3o promete trazer para o PHP.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/\" \/>\n<meta property=\"og:site_name\" content=\"Homehost\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Homehost\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-10-13T18:21:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-09T02:55:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2020\/10\/PHP_8_Novidades.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1120\" \/>\n\t<meta property=\"og:image:height\" content=\"440\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Rafael Marques\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Homehost\" \/>\n<meta name=\"twitter:site\" content=\"@Homehost\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rafael Marques\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/\",\"url\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/\",\"name\":\"PHP 8: conhe\u00e7a as melhorias da nova vers\u00e3o do PHP | Homehost\",\"isPartOf\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2020\/10\/PHP_8_Novidades.png\",\"datePublished\":\"2020-10-13T18:21:53+00:00\",\"dateModified\":\"2023-06-09T02:55:04+00:00\",\"author\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/a2154603d8bc4cfd0c3bda2c09c4017e\"},\"description\":\"Fique por dentro de todas as mudan\u00e7as e novidades da atualiza\u00e7\u00e3o do PHP 8. Tudo que essa atualiza\u00e7\u00e3o promete trazer para o PHP.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/#primaryimage\",\"url\":\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2020\/10\/PHP_8_Novidades.png\",\"contentUrl\":\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2020\/10\/PHP_8_Novidades.png\",\"width\":1120,\"height\":440,\"caption\":\"PHP 8: Novidades e Mudan\u00e7as da nova vers\u00e3o do PHP\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/www.homehost.com.br\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP 8: conhe\u00e7a as melhorias da nova vers\u00e3o do PHP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/#website\",\"url\":\"https:\/\/www.homehost.com.br\/blog\/\",\"name\":\"Homehost\",\"description\":\"Hospedagem De Sites\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.homehost.com.br\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/a2154603d8bc4cfd0c3bda2c09c4017e\",\"name\":\"Rafael Marques\",\"description\":\"Especialista em Desenvolvimento Web e Marketing. \u00c9 apaixonado por tecnologia, empreendedorismo, audiovisual e animais. Em sua carreira, dedica-se ao empreendedorismo, al\u00e9m de atuar como Desenvolvedor Fullstack e redator t\u00e9cnico. Gosta de usar seu tempo livre para assistir a filmes, jogar, escrever, e passar um bom tempo brincando e mimando seus animais de estima\u00e7\u00e3o. Contato: rafael.blog@homehost.com.br\",\"sameAs\":[\"https:\/\/www.instagram.com\/rafamarquesrmb\/\",\"https:\/\/www.linkedin.com\/in\/rafamarquesrmb\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PHP 8: conhe\u00e7a as melhorias da nova vers\u00e3o do PHP | Homehost","description":"Fique por dentro de todas as mudan\u00e7as e novidades da atualiza\u00e7\u00e3o do PHP 8. Tudo que essa atualiza\u00e7\u00e3o promete trazer para o PHP.","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:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/","og_locale":"pt_BR","og_type":"article","og_title":"PHP 8: conhe\u00e7a as melhorias da nova vers\u00e3o do PHP | Homehost","og_description":"Fique por dentro de todas as mudan\u00e7as e novidades da atualiza\u00e7\u00e3o do PHP 8. Tudo que essa atualiza\u00e7\u00e3o promete trazer para o PHP.","og_url":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/","og_site_name":"Homehost","article_publisher":"https:\/\/www.facebook.com\/Homehost\/","article_published_time":"2020-10-13T18:21:53+00:00","article_modified_time":"2023-06-09T02:55:04+00:00","og_image":[{"width":1120,"height":440,"url":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2020\/10\/PHP_8_Novidades.png","type":"image\/png"}],"author":"Rafael Marques","twitter_card":"summary_large_image","twitter_creator":"@Homehost","twitter_site":"@Homehost","twitter_misc":{"Escrito por":"Rafael Marques","Est. tempo de leitura":"12 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/","url":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/","name":"PHP 8: conhe\u00e7a as melhorias da nova vers\u00e3o do PHP | Homehost","isPartOf":{"@id":"https:\/\/www.homehost.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/#primaryimage"},"image":{"@id":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/#primaryimage"},"thumbnailUrl":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2020\/10\/PHP_8_Novidades.png","datePublished":"2020-10-13T18:21:53+00:00","dateModified":"2023-06-09T02:55:04+00:00","author":{"@id":"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/a2154603d8bc4cfd0c3bda2c09c4017e"},"description":"Fique por dentro de todas as mudan\u00e7as e novidades da atualiza\u00e7\u00e3o do PHP 8. Tudo que essa atualiza\u00e7\u00e3o promete trazer para o PHP.","breadcrumb":{"@id":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/#primaryimage","url":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2020\/10\/PHP_8_Novidades.png","contentUrl":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2020\/10\/PHP_8_Novidades.png","width":1120,"height":440,"caption":"PHP 8: Novidades e Mudan\u00e7as da nova vers\u00e3o do PHP"},{"@type":"BreadcrumbList","@id":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-8\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.homehost.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"PHP 8: conhe\u00e7a as melhorias da nova vers\u00e3o do PHP"}]},{"@type":"WebSite","@id":"https:\/\/www.homehost.com.br\/blog\/#website","url":"https:\/\/www.homehost.com.br\/blog\/","name":"Homehost","description":"Hospedagem De Sites","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.homehost.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/a2154603d8bc4cfd0c3bda2c09c4017e","name":"Rafael Marques","description":"Especialista em Desenvolvimento Web e Marketing. \u00c9 apaixonado por tecnologia, empreendedorismo, audiovisual e animais. Em sua carreira, dedica-se ao empreendedorismo, al\u00e9m de atuar como Desenvolvedor Fullstack e redator t\u00e9cnico. Gosta de usar seu tempo livre para assistir a filmes, jogar, escrever, e passar um bom tempo brincando e mimando seus animais de estima\u00e7\u00e3o. Contato: rafael.blog@homehost.com.br","sameAs":["https:\/\/www.instagram.com\/rafamarquesrmb\/","https:\/\/www.linkedin.com\/in\/rafamarquesrmb\/"]}]}},"modified_by":"Gustavo Gallas","jetpack_featured_media_url":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2020\/10\/PHP_8_Novidades.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts\/5871","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/comments?post=5871"}],"version-history":[{"count":15,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts\/5871\/revisions"}],"predecessor-version":[{"id":8078,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts\/5871\/revisions\/8078"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/media\/5886"}],"wp:attachment":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/media?parent=5871"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/categories?post=5871"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/tags?post=5871"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}