{"id":30056,"date":"2019-10-15T08:30:33","date_gmt":"2019-10-15T15:30:33","guid":{"rendered":"https:\/\/kinsta.com\/?p=31095"},"modified":"2025-02-25T09:24:18","modified_gmt":"2025-02-25T12:24:18","slug":"php-7-3","status":"publish","type":"post","link":"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/","title":{"rendered":"O Que h\u00e1 de Novo no PHP 7.3 (Agora Dispon\u00edvel na Kinsta)"},"content":{"rendered":"<p>A partir de 6 de Dezembro de 2018, a \u00faltima e maior vers\u00e3o, PHP 7.3 est\u00e1 aqui! Com ele v\u00eam novos recursos \u00fateis, funcionalidades, deprecia\u00e7\u00f5es, um bom n\u00famero de corre\u00e7\u00f5es de bugs e um aumento na performance. <strong>O PHP 7.3 tamb\u00e9m est\u00e1 agora dispon\u00edvel para todos os clientes Kinsta<\/strong> no <a href=\"https:\/\/my.kinsta.com\/sites\/tools\/?lang=pt\">dashboard do MyKinsta<\/a>. \ud83e\udd18<\/p>\n<p><strong>Atualiza\u00e7\u00e3o:<\/strong> <a href=\"https:\/\/kinsta.com\/pt\/changelog\/php-8-1\/\">PHP 8.1 (vers\u00e3o oficial)<\/a> est\u00e1 agora dispon\u00edvel para todos os clientes Kinsta. O PHP 7.3 n\u00e3o \u00e9 mais suportado na Kinsta. Note que somente suportamos vers\u00f5es PHP 7.4, 8.0, 8.1, 8.2, 8.3, 8.4 and 8.5.<\/p>\n<p>Neste post, vamos fornecer uma vis\u00e3o geral das caracter\u00edsticas e mudan\u00e7as que n\u00f3s pessoalmente consideramos mais relevantes. Mas voc\u00ea pode sempre verificar a lista completa de recursos, mudan\u00e7as e corre\u00e7\u00f5es de erros no <a href=\"https:\/\/github.com\/php\/php-src\/blob\/php-7.3.0beta1\/UPGRADING\">PHP 7.3 notas de atualiza\u00e7\u00e3o<\/a> e no <a href=\"https:\/\/wiki.php.net\/rfc#php_73\">PHP 7.3 Pedidos de Coment\u00e1rios<\/a>.<\/p>\n\n<h2>O que h\u00e1 de Novo em PHP com PHP 7.3?<\/h2>\n<p>Neste post n\u00f3s estamos cobrindo as seguintes mudan\u00e7as no PHP 7.3:<\/p>\n<ul>\n<li><a href=\"#flexible-heredoc-nowdoc\">Sintaxes Heredoc e Nowdoc Flex\u00edveis Implementadas<\/a><\/li>\n<li><a href=\"#trailing-comma-in-function-calls\">Permitir uma v\u00edrgula final em chamadas de fun\u00e7\u00e3o<\/a><\/li>\n<li><a href=\"#JSON_THROW_ON_ERROR\">JSON_THROW_ON_ERROR<\/a><\/li>\n<li><a href=\"#list\">list() Atribui\u00e7\u00e3o de refer\u00eancia<\/a><\/li>\n<li><a href=\"#is-countable\">fun\u00e7\u00e3o is_countable<\/a><\/li>\n<li><a href=\"#array-key-first-last\">array_key_first(), array_key_last()<\/a><\/li>\n<li><a href=\"#argon2\">Argon2 Password Hash Enhancements<\/a><\/li>\n<li><a href=\"#deprecations\">Deprecia\u00e7\u00f5es<\/a><\/li>\n<\/ul>\n<h2 id=\"flexible-heredoc-nowdoc\">Sintaxe Flex\u00edvel de Heredoc e Nowdoc<\/h2>\n<p>Esta \u00e9 provavelmente uma das melhorias mais relevantes que vem com o PHP 7.3, e n\u00f3s achamos que ele merece um pouco mais de aten\u00e7\u00e3o. Ent\u00e3o, antes de mergulhar no PHP 7.3 heredoc\/nowdoc mudan\u00e7as, vamos fornecer uma vis\u00e3o geral r\u00e1pida deste recurso central \u00fatil. Se voc\u00ea j\u00e1 est\u00e1 confiante com o nowdoc e o heredoc, sinta-se livre para saltar para as mudan\u00e7as do PHP 7.3.<\/p>\n<ul>\n<li><a href=\"#heredoc-nowdoc-overview\">Uma vis\u00e3o geral das sintaxes heredoc e nowdoc<\/a><\/li>\n<li><a href=\"#heredoc-nowdoc-indentation\">PHP 7.3: Permitir que o marcador de fechamento seja recuado e que o espa\u00e7o em branco principal seja removido<\/a><\/li>\n<li><a href=\"#heredoc-nowdoc-closing-marker\">PHP 7.3: Remover o requisito da Trailing New Line do marcador de fechamento<\/a><\/li>\n<\/ul>\n<h3 id=\"heredoc-nowdoc-overview\">Uma vis\u00e3o geral das sintaxes heredoc e nowdoc<\/h3>\n<p><strong>A sintaxe heredoc fornece uma maneira de adicionar uma grande quantidade de texto sem a necessidade de escapar de coisas como aspas duplas<\/strong>. Um heredoc come\u00e7a com <code>&lt;&lt;&lt;<\/code> seguido de um marcador, e termina com o mesmo marcador seguido de um ponto-e-v\u00edrgula. Aqui est\u00e1 um exemplo:<\/p>\n<pre><code class=\"language-php\">print &lt;&lt;&lt;EOT\nHeredoc text behaves just like a double-quoted string, without the double quotes.\nEOT;<\/code><\/pre>\n<p>Um nowdoc se comporta como um heredoc, com algumas exce\u00e7\u00f5es:<\/p>\n<ul>\n<li>O identificador est\u00e1 entre aspas simples (<code>&lt;&lt;&lt;&lt;'EOT'<\/code>)<\/li>\n<li>Nenhuma an\u00e1lise \u00e9 feita dentro de um &#8220;nowdoc&#8221;.<\/li>\n<\/ul>\n<p>Aqui est\u00e1 um exemplo do nowdoc:<\/p>\n<pre><code class=\"language-php\">print &lt;&lt;&lt;'EOT'\nNowdocs are to single-quoted strings what heredocs are to double-quoted strings.\nEOT;<\/code><\/pre>\n<p>Heredocs e nowdocs compartilham as mesmas regras que regulam o uso do marcador de fechamento:<\/p>\n<ol>\n<li>O marcador de fecho deve come\u00e7ar na primeira coluna da linha<\/li>\n<li>O marcador deve seguir as mesmas regras de nomenclatura que qualquer outro r\u00f3tulo em PHP: deve conter apenas caracteres alfanum\u00e9ricos e sublinhados, e deve come\u00e7ar com um caractere sem d\u00edgitos ou sublinhado.<\/li>\n<\/ol>\n<p>O <a href=\"http:\/\/php.net\/manual\/en\/language.types.string.php#language.types.string.syntax.heredoc\">Manual do PHP<\/a> avisa:<\/p>\n<blockquote><p>O <a href=\"http:\/\/php.net\/manual\/en\/language.types.string.php#language.types.string.syntax.heredoc\">Manual do PHP<\/a> avisa:<\/p>\n<p>\u00c9 muito importante notar que a linha com o identificador de fechamento n\u00e3o deve conter outros caracteres, exceto um ponto-e-v\u00edrgula (;). Isso significa especialmente que o identificador <em>n\u00e3o pode ser recuado<\/em>, e n\u00e3o pode haver espa\u00e7os ou abas antes ou depois do ponto-e-v\u00edrgula. Tamb\u00e9m \u00e9 importante perceber que o primeiro caractere antes do identificador de fechamento deve ser uma nova linha como definida pelo sistema operacional local. Isto \u00e9 <code>\\n<\/code>\u00a0sistemas UNIX, incluindo MacOS. O delimitador de fechamento tamb\u00e9m deve ser seguido por uma nova linha.<\/p><\/blockquote>\n<p><strong> Sintaxe inv\u00e1lida do PHP 7.2: <\/strong><\/p>\n<pre><code class=\"language-php\">class foo {\n    public $bar = &lt;&lt;&lt;EOT\n    bar\n    EOT;\n}\n\/\/ Identifier must not be indented<\/code><\/pre>\n<p><strong> Sintaxe v\u00e1lida do PHP 7.2: <\/strong><\/p>\n<pre><code class=\"language-php\">class foo {\n    public $bar = &lt;&lt;&lt;EOT\nbar\nEOT;\n}<\/code><\/pre>\n<p>Para mant\u00ea-lo curto, no PHP 7.2:<\/p>\n<ul>\n<li>O marcador de fecho n\u00e3o pode ser recuado<\/li>\n<li>A linha com o marcador de fecho n\u00e3o pode conter caracteres como espa\u00e7os ou tabula\u00e7\u00f5es<\/li>\n<li>O primeiro caractere antes do marcador de fecho deve ser uma nova linha<\/li>\n<li>O marcador de encerramento deve ser seguido de uma nova linha<\/li>\n<\/ul>\n<p>\u00c9 claro o bastante que as sintaxes heredoc e nowdoc s\u00e3o bastante restritivas, mas o PHP 7.3 pode mudar um pouco isso com as seguintes melhorias.<\/p>\n<h3 id=\"heredoc-nowdoc-indentation\">1. Permitir que o marcador de fechamento seja recuado e que o espa\u00e7o em branco principal seja removido<\/h3>\n<p><strong>Com o PHP 7.3 temos permiss\u00e3o para recuar o marcador de fechamento<\/strong>, e podemos escrever com seguran\u00e7a o seguinte c\u00f3digo:<\/p>\n<pre><code class=\"language-php\">class foo {\n    public $bar = &lt;&lt;&lt;EOT\n        bar\n    EOT;\n}<\/code><\/pre>\n<p>A indenta\u00e7\u00e3o do marcador de fechamento define a quantidade de espa\u00e7os em branco (ou abas) que ser\u00e3o retirados de cada linha do corpo. Mas tenha cuidado: <strong>o marcador de fechamento nunca deve ser recuado mais do que qualquer outra linha do corpo<\/strong>.<\/p>\n<p>Veja o c\u00f3digo abaixo:<\/p>\n<pre><code class=\"language-php\">class foo {\n    public $bar = &lt;&lt;&lt;EOT\n    bar\n        EOT;\n}<\/code><\/pre>\n<p>O c\u00f3digo acima emitiria o seguinte erro de an\u00e1lise:<\/p>\n<pre>Parse error: Invalid body indentation level (expecting an indentation at least ...) in %s on line %d<\/pre>\n<p>Descascando abas e espa\u00e7os em branco nos permitem indentar o corpo do heredoc\/nowdoc para o mesmo n\u00edvel do c\u00f3digo ao redor, e sem espa\u00e7os em branco desnecess\u00e1rios antes de cada linha do corpo.<\/p>\n<p>Podemos usar ambas as abas e espa\u00e7os para indenta\u00e7\u00e3o, mas n\u00e3o temos permiss\u00e3o para us\u00e1-los intermixados. Isto significa que <strong>devemos usar os mesmos caracteres de indenta\u00e7\u00e3o para o marcador de fechamento e quaisquer linhas do corpo<\/strong>. No caso de caracteres de indenta\u00e7\u00e3o diferentes, esperar\u00edamos um tipo diferente de erro de an\u00e1lise (indenta\u00e7\u00e3o inv\u00e1lida).<\/p>\n<h3 id=\"heredoc-nowdoc-closing-marker\">2. Remover o requisito da Trailing New Line do marcador de fechamento<\/h3>\n<p>Atualmente, uma nova linha deve seguir o marcador para encerrar a heredoc\/nowdoc. O PHP 7.3 mudaria isso e nos permitiria terminar o heredoc\/nowdoc na mesma linha. Aqui est\u00e1 um exemplo da RFC:<\/p>\n<p><strong> Sintaxe v\u00e1lida do PHP 7.2: <\/strong><\/p>\n<pre><code class=\"language-php\">$values = [&lt;&lt;&lt;END\na\nb\nc\nEND\n, 'd e f'];<\/code><\/pre>\n<p><strong> Sintaxe v\u00e1lida do PHP 7.3: <\/strong><\/p>\n<pre><code class=\"language-php\">$values = [&lt;&lt;&lt;END\na\nb\nc\nEND, 'd e f'];<\/code><\/pre>\n<p>Seja como for, tenha cuidado ao escolher o nome do seu marcador porque &#8220;ocasionalmente&#8221; voc\u00ea pode esperar um erro se ele corresponder a uma palavra que voc\u00ea usou no corpo do heredoc\/nowdoc (leia mais sobre isso no <a href=\"https:\/\/wiki.php.net\/rfc\/flexible_heredoc_nowdoc_syntaxes\">RFC<\/a> e no <a href=\"https:\/\/github.com\/php\/php-src\/blob\/php-7.3.0beta1\/UPGRADING#L33\">GitHub<\/a>).<\/p>\n<p>Ambas as propostas foram aprovadas com mais de 2\/3 dos votos.<\/p>\n<h4>PHP 7.3 RFC<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/flexible_heredoc_nowdoc_syntaxes\">Sintaxe Flex\u00edvel de Heredoc e Nowdoc<\/a><\/li>\n<\/ul>\n<h4>Recursos adicionais<\/h4>\n<ul>\n<li><a href=\"http:\/\/php.net\/manual\/en\/language.types.string.php#language.types.string.syntax.heredoc\">Sintaxe de cadeia heredit\u00e1ria<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/language.types.string.php#language.types.string.syntax.nowdoc\">Sintaxe da string Nowdoc<\/a><\/li>\n<\/ul>\n<h2 id=\"trailing-comma-in-function-calls\">Permitir uma v\u00edrgula em chamadas de fun\u00e7\u00e3o<\/h2>\n<p>Trailing commas (ou &#8220;v\u00edrgulas finais&#8221;) s\u00e3o v\u00edrgulas anexadas a uma lista de elementos, par\u00e2metros ou propriedades e s\u00e3o \u00fateis em contextos onde novos valores s\u00e3o acrescentados frequentemente porque evitam erros devido \u00e0 falta de uma v\u00edrgula. No PHP s\u00e3o permitidas v\u00edrgulas trailing em arrays, e a partir do <a href=\"https:\/\/kinsta.com\/pt\/blog\/php-7-2\/\">PHP 7.2<\/a> s\u00e3o permitidas em namespaces agrupados.<\/p>\n<p>A partir do PHP 7.3, v\u00edrgulas a seguir seriam permitidas nas declara\u00e7\u00f5es de fun\u00e7\u00e3o. <a href=\"https:\/\/en.wikipedia.org\/wiki\/Variadic_function\">As fun\u00e7\u00f5es variadas<\/a><\/p>\n<pre><code class=\"language-php\">foo(\n    $bar,\n    $baz,\n);<\/code><\/pre>\n<p>Podemos usar uma v\u00edrgula trailing quando estamos criando um array com <code>compact()<\/code>, para retornar uma string formatada com <code>sprintf()<\/code>, ou ao fundir um array:<\/p>\n<pre><code class=\"language-php\">$newArray = array_merge(\n    $arrayOne,\n    $arrayTwo,\n    ['foo', 'bar'],\n);<\/code><\/pre>\n<p>Al\u00e9m disso, v\u00edrgulas a seguir seriam \u00fateis para depura\u00e7\u00e3o:<\/p>\n<pre><code class=\"language-php\">var_dump(\n    $foo,\n    $bar,\n    $baz,\n);<\/code><\/pre>\n<p style=\"text-align: center\">E eles s\u00e3o poderosos com <code>unset()<\/code> e <code>isset()<\/code>:<\/p>\n<pre><code class=\"language-php\">unset(\n    $foo,\n    $bar,\n    $baz,\n);\n\nisset(\n    $foo,\n    $bar,\n    $baz,\n);<\/code><\/pre>\n<p>V\u00e1rias v\u00edrgulas ser\u00e3o permitidas em chamadas de m\u00e9todo e anexos, tamb\u00e9m.<\/p>\n<p>Nota: <strong>Esta altera\u00e7\u00e3o afectaria apenas as chamadas de fun\u00e7\u00e3o. A sintaxe da declara\u00e7\u00e3o de fun\u00e7\u00e3o n\u00e3o ser\u00e1 alterada<\/strong>. Al\u00e9m disso, n\u00e3o ser\u00e3o permitidas v\u00edrgulas isoladas, v\u00edrgulas m\u00faltiplas e v\u00edrgulas principais.<\/p>\n<p>Exemplos adicionais podem ser encontrados na <a href=\"https:\/\/wiki.php.net\/rfc\/trailing-comma-function-calls\">p\u00e1gina RFC<\/a>. Este RFC passou com 30 a 10 votos.<\/p>\n<h4>PHP 7.3 RFC<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/flexible_heredoc_nowdoc_syntaxes\">Sintaxe Flex\u00edvel de Heredoc e Nowdoc<\/a><\/li>\n<\/ul>\n<h2 id=\"JSON_THROW_ON_ERROR\">JSON_THROW_ON_ERROR<\/h2>\n<p>Uma das funcionalidades mais apreciadas com o PHP 7.3 fornece uma nova maneira de lidar com erros JSON. Esta n\u00e3o \u00e9 uma caracter\u00edstica central, mas uma adi\u00e7\u00e3o \u00e0 extens\u00e3o JSON que mudaria o comportamento de erro de <a href=\"http:\/\/www.php.net\/json_decode\">json_decode()<\/a> e <a href=\"http:\/\/www.php.net\/json_encode\">json_encode()<\/a>.<\/p>\n<p>Atualmente, <code>json_decode()<\/code> retorna <code>null<\/code> on error, mas <code>null<\/code> tamb\u00e9m pode ser um resultado v\u00e1lido. Isto pode ser confuso, porque<\/p>\n<blockquote><p>S\u00f3 \u00e9 poss\u00edvel saber se um erro ocorreu chamando <code>json_last_error()<\/code> ou <code>json_last_error_msg()<\/code>, que retornam o estado de erro global em formul\u00e1rios leg\u00edveis por m\u00e1quina e leg\u00edveis por humanos respectivamente. &#8211; <a href=\"https:\/\/wiki.php.net\/rfc\/json_throw_on_error\" target=\"_blank\" rel=\"noopener noreferrer\">PHP RFC<\/a><\/p><\/blockquote>\n<p><code>json_encode()<\/code> retorna <code>FALSE<\/code> no erro. Isto \u00e9 mais claro porque existe um valor de erro espec\u00edfico. De qualquer maneira, <strong>ambas as fun\u00e7\u00f5es n\u00e3o interrompem a execu\u00e7\u00e3o do programa por erro, nem lan\u00e7am nenhum aviso<\/strong>.<\/p>\n<p>Com isso dito, aqui est\u00e1 a proposta para o PHP 7.3:<\/p>\n<blockquote><p>Esta RFC prop\u00f5e adicionar um novo valor de sinalizador de op\u00e7\u00e3o para <code>json_decode()<\/code> e <code>json_encode()<\/code>, <code>JSON_THROW_ON_ERROR<\/code>. Quando este flag \u00e9 ultrapassado, o comportamento de erro destas fun\u00e7\u00f5es \u00e9 alterado. O estado de erro global \u00e9 deixado intocado, e se ocorrer um erro que de outra forma o definiria, essas fun\u00e7\u00f5es em vez disso lan\u00e7am uma <code>JsonException<\/code> com a mensagem e c\u00f3digo definidos para qualquer <code>json_last_error()<\/code> e <code>json_last_error_msg()<\/code> seria respectivamente.<\/p><\/blockquote>\n<p>Aqui est\u00e1 um exemplo mostrando uma maneira simples de lan\u00e7ar um erro JSON:<\/p>\n<pre><code class=\"language-php\">try {\n    json_decode(\"{\", false, 512, JSON_THROW_ON_ERROR);\n}\ncatch (\\JsonException $exception) {\n    echo $exception-&gt;getMessage(); \/\/ echoes \"Syntax error\"\n}<\/code><\/pre>\n<p>Lan\u00e7ar uma exce\u00e7\u00e3o ap\u00f3s o erro daria v\u00e1rias vantagens que voc\u00ea encontrar\u00e1 listadas na <a href=\"https:\/\/wiki.php.net\/rfc\/json_throw_on_error\">RFC<\/a>.<\/p>\n<p>Nota: um par\u00e2metro de profundidade inv\u00e1lido passado para json_decode() produz um aviso e retorna <code>NULL<\/code>. Este comportamento n\u00e3o ser\u00e1 afetado pelo <code>JSON_THROW_ON_ON_ERROR<\/code>. Da mesma forma, os erros de an\u00e1lise de par\u00e2metros n\u00e3o s\u00e3o afetados por <code>JSON_THROW_ON_ERROR<\/code> e continuam a produzir avisos.<\/p>\n<p>Esta proposta foi aprovada com 23 votos a favor e 0 contra.<\/p>\n<h4>PHP 7.3 RFC<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/json_throw_on_error\" target=\"_blank\" rel=\"noopener noreferrer\">JSON_THROW_ON_ERROR<\/a><\/li>\n<\/ul>\n<h4>Additional Resources<\/h4>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li><a href=\"http:\/\/php.net\/manual\/en\/book.json.php\">Nota\u00e7\u00e3o de objetos JavaScript<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.json-decode.php\">json_decode()<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.json_encode\">json_encode()<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.json-last-error.php\">json_last_error()<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.json-last-error-msg.php\">json_last_error_msg()<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/language.exceptions.php\">Exce\u00e7\u00f5es \u00e0 Linguagem PHP<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"list\">list() Atribui\u00e7\u00e3o de refer\u00eancia<\/h2>\n<h3>O que Significa Atribui\u00e7\u00e3o de Refer\u00eancia?<\/h3>\n<p>Considere a seguinte linha:<\/p>\n<pre><code class=\"language-php\">$b = &$a;<\/code><\/pre>\n<p>Aqui <code>$b<\/code> recebe o valor de <code>$a<\/code>, mas esse valor n\u00e3o \u00e9 copiado de <code>$a<\/code> para <code>$b<\/code>. No PHP podemos atribuir um valor por refer\u00eancia, o que significa que duas vari\u00e1veis podem apontar para os mesmos dados, e cada mudan\u00e7a em qualquer vari\u00e1vel afeta os dados originais. Aqui est\u00e1 <a href=\"http:\/\/php.net\/manual\/en\/language.operators.assignment.php#language.operators.assignment.reference\">um exemplo do manual do PHP<\/a>:<\/p>\n<pre><code class=\"language-php\">&lt;?php\n$a = 3;\n$b = &$a; \/\/ $b is a reference to $a\n\nprint \"$a\\n\"; \/\/ prints 3\nprint \"$b\\n\"; \/\/ prints 3<\/code><\/pre>\n<p>Agora, vamos mudar o valor de <code>$a<\/code>:<\/p>\n<pre><code class=\"language-php\">$a = 4; \/\/ change $a\n\nprint \"$a\\n\"; \/\/ prints 4\nprint \"$b\\n\"; \/\/ prints 4 as well, since $b is a reference to $a, which has been changed<\/code><\/pre>\n<h3>Qual \u00e9 a Lista () Construir e Como ele Muda com o PHP 7.3<\/h3>\n<p>A constru\u00e7\u00e3o da linguagem <a href=\"http:\/\/www.php.net\/list\">list()<\/a> pode ser usada para &#8220;atribuir vari\u00e1veis como se elas estivessem em um array&#8221;, mas com <code>list()<\/code> n\u00e3o temos permiss\u00e3o para atribuir valores de vari\u00e1veis por refer\u00eancia.<\/p>\n<p>O PHP 7.3 deve mudar isso permitindo-nos atribuir vari\u00e1veis por refer\u00eancia tamb\u00e9m com a constru\u00e7\u00e3o <code>list(),<\/code> como mostrado no seguinte exemplo:<\/p>\n<pre><code class=\"language-php\">$array = [1, 2];\nlist($a, &$b) = $array;<\/code><\/pre>\n<p>Que \u00e9 o mesmo que:<\/p>\n<pre><code class=\"language-php\">$array = [1, 2];\n$a = $array[0];\n$b =& $array[1];<\/code><\/pre>\n<p>A vantagem desta proposta \u00e9 que poder\u00edamos agora atribuir m\u00faltiplas vari\u00e1veis por refer\u00eancia, o que atualmente n\u00e3o era permitido. Mais exemplos est\u00e3o dispon\u00edveis na <a href=\"https:\/\/wiki.php.net\/rfc\/list_reference_assignment\">RFC<\/a>. Esta proposta foi aprovada com 17 votos a favor e 7 contra.<\/p>\n<h4>PHP 7.3 RFC<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/list_reference_assignment\">list() Atribui\u00e7\u00e3o de refer\u00eancia<\/a><\/li>\n<\/ul>\n<h4>Recursos adicionais<\/h4>\n<ul>\n<li>Manual do PHP &#8211; <a href=\"http:\/\/php.net\/manual\/en\/function.list.php\">list()<\/a><\/li>\n<li>Manual do PHP &#8211; <a href=\"http:\/\/php.net\/manual\/en\/language.references.php\">Refer\u00eancias Explicadas<\/a><\/li>\n<li>Operadores de atribui\u00e7\u00e3o &#8211; <a href=\"http:\/\/php.net\/manual\/en\/language.operators.assignment.php#language.operators.assignment.reference\">Atribui\u00e7\u00e3o por refer\u00eancia<\/a><\/li>\n<\/ul>\n<h2 id=\"is-countable\">Fun\u00e7\u00e3o is_countable<\/h2>\n<p>Outro recurso \u00fatil que vem com o PHP 7.3 \u00e9 a fun\u00e7\u00e3o <code>is_countable()<\/code>. At\u00e9 o <a href=\"https:\/\/kinsta.com\/pt\/blog\/php-7-2\/\">PHP 7.2<\/a>, obtemos um erro ao tentar <a href=\"http:\/\/php.net\/manual\/en\/function.count.php\">contar()<\/a> algo que n\u00e3o \u00e9 cont\u00e1vel. Por esta raz\u00e3o, a fim de evitar um aviso, somos for\u00e7ados a adicionar o seguinte c\u00f3digo:<\/p>\n<pre><code class=\"language-php\">if (is_array($foo) || $foo instanceof Countable) {\n    \/\/ $foo is countable\n}<\/code><\/pre>\n<p>Esta RFC prop\u00f5e a fun\u00e7\u00e3o <a href=\"https:\/\/wiki.php.net\/rfc\/is-countable\">is_countable()<\/a>, que retorna <code>true<\/code> se a vari\u00e1vel dada for um array ou uma vari\u00e1vel cont\u00e1vel, <code>false<\/code> otherwise. Assim, o c\u00f3digo acima pode ser alterado da seguinte forma:<\/p>\n<pre><code class=\"language-php\">if (is_countable($foo)) {\n    \/\/ $foo is countable\n}<\/code><\/pre>\n<p>Esta proposta foi aprovada com 25 votos a favor e 0 contra.<\/p>\n<h4>PHP 7.3 RFC<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/is-countable\" target=\"_blank\" rel=\"noopener noreferrer\">is_countable<\/a><\/li>\n<\/ul>\n<h4>Recursos adicionais<\/h4>\n<ul>\n<li><a href=\"http:\/\/php.net\/manual\/en\/class.countable.php\" target=\"_blank\" rel=\"noopener noreferrer\">A interface Countable<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.count.php\" target=\"_blank\" rel=\"noopener noreferrer\">count<\/a><\/li>\n<\/ul>\n<h2 id=\"array-key-first-last\">array_key_first(), array_key_last()<\/h2>\n<p>Atualmente, podemos recuperar a primeira e a \u00faltima chave de um array usando as fun\u00e7\u00f5es<a href=\"http:\/\/php.net\/manual\/en\/function.reset.php\"> reset()<\/a>, <a href=\"http:\/\/php.net\/manual\/en\/function.end.php\">end()<\/a>, <a href=\"http:\/\/php.net\/manual\/en\/function.end.php\">end()<\/a> e <a href=\"http:\/\/php.net\/manual\/en\/function.key.php\">key()<\/a>. Infelizmente, com essas fun\u00e7\u00f5es, n\u00e3o h\u00e1 como reunir o primeiro ou o \u00faltimo \u00edndice de um array sem alterar seu estado interno. Outras op\u00e7\u00f5es normalmente reduzem a legibilidade e o desempenho do c\u00f3digo.<br \/>\nEsta proposta mudaria este cen\u00e1rio adicionando duas novas fun\u00e7\u00f5es ao n\u00facleo do PHP:<\/p>\n<ul>\n<li><code>array_key_first()<\/code><\/li>\n<li><code>array_key_last()<\/code><\/li>\n<\/ul>\n<p>A partir do PHP 7.3, <code>array_key_first()<\/code> e <code>array_key_last()<\/code> permitem recuperar a primeira e \u00faltima chave de um dado array <strong>sem afetar o ponteiro interno do array<\/strong>. Essas novas fun\u00e7\u00f5es nos permitiriam escrever c\u00f3digos menos complexos e, em alguns casos, evitar erros. Consultar a <a href=\"https:\/\/wiki.php.net\/rfc\/array_key_first_last\">RFC<\/a> para obter mais informa\u00e7\u00f5es e v\u00e1rios exemplos.<\/p>\n<p><code>array_key_first()<\/code> e <code>array_key_last()<\/code> foram aprovados com 18 a 14 votos.<\/p>\n<p>Nota: a RFC original prop\u00f4s mais duas fun\u00e7\u00f5es, <code>array_value_first()<\/code> e <code>array_value_last()<\/code>, que foram votadas em uma pesquisa diferente, mas n\u00e3o foram aprovadas e n\u00e3o se tornar\u00e3o parte do n\u00facleo do PHP.<\/p>\n<h4>PHP 7.3 RFC<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/array_key_first_last\" target=\"_blank\" rel=\"noopener noreferrer\">array_key_first(), array_key_last()<\/a><\/li>\n<\/ul>\n<h4>Recursos adicionais<\/h4>\n<ul>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.array-key-first.php\" target=\"_blank\" rel=\"noopener noreferrer\">array_key_first<\/a><\/li>\n<li><a href=\"http:\/\/php.net\/manual\/en\/function.array-key-last.php\" target=\"_blank\" rel=\"noopener noreferrer\">array_key_last<\/a><\/li>\n<\/ul>\n<h2 id=\"argon2\">Argon2 Password Hash Enhancements<\/h2>\n<p>Argon2 \u00e9 um algoritmo de hashing <a href=\"https:\/\/kinsta.com\/pt\/blog\/php-7-2\/\">implementado no PHP 7.2<\/a> como uma alternativa ao algoritmo Bcrypt. O PHP 7.2 introduziu a constante <code>PASSWORD_ARGON2I<\/code>, dispon\u00edvel para ser usada em fun\u00e7\u00f5es <code>password_*<\/code>:<\/p>\n<pre><code class=\"language-php\">password_hash('password', PASSWORD_ARGON2I);<\/code><\/pre>\n<p>Desde sua primeira implementa\u00e7\u00e3o, uma nova variante do Argon2 foi adicionada, ent\u00e3o, no momento em que este artigo foi escrito, o Argon2 vem em tr\u00eas variantes:<\/p>\n<ul>\n<li><strong>Argon2d<\/strong> maximiza a resist\u00eancia a ataques de quebra de GPU. \u00c9 mais r\u00e1pido e utiliza o acesso \u00e0 mem\u00f3ria dependente de dados.<\/li>\n<li><strong>Argon2i<\/strong> usa acesso \u00e0 mem\u00f3ria independente de dados, que \u00e9 preferido para o hashing de senha. \u00c9 mais lento porque faz mais passagens sobre a mem\u00f3ria para proteger de ataques de tradeoff.<\/li>\n<li><strong>Argon2id<\/strong> \u00e9 uma vers\u00e3o h\u00edbrida que combina a abordagem Argon2i para a primeira passagem sobre a mem\u00f3ria, e a abordagem Argon2d para passagens subsequentes.<\/li>\n<\/ul>\n<p>Argon2id \u00e9 recomendado na Internet, exceto quando h\u00e1 boas raz\u00f5es para preferir especificamente outra variante.<\/p>\n<p>A nova RFC prop\u00f5e a implementa\u00e7\u00e3o do Argon2id dentro das fun\u00e7\u00f5es <a href=\"http:\/\/php.net\/manual\/en\/ref.password.php\">password_*<\/a> com a nova constante <code>PASSWORD_ARGON2ID<\/code>:<\/p>\n<pre><code class=\"language-php\">password_hash('password', PASSWORD_ARGON2ID);<\/code><\/pre>\n<p>A implementa\u00e7\u00e3o \u00e9 id\u00eantica \u00e0 implementa\u00e7\u00e3o do Argon2i, e aceitar\u00e1 os mesmos fatores de custo:<\/p>\n<ul>\n<li>Um <strong>custo de mem\u00f3ria<\/strong> que define o n\u00famero de KiB que devem ser consumidos durante o hashing (os valores padr\u00e3o s\u00e3o 1&lt;10, ou 1024 KiB, ou 1 MiB)<\/li>\n<li>Um <strong>custo de tempo<\/strong> que define o n\u00famero de itera\u00e7\u00f5es do algoritmo de hashing (padr\u00e3o 2)<\/li>\n<li>Um <strong>fator de paralelismo<\/strong>, que define o n\u00famero de roscas paralelas que ser\u00e3o usadas durante o hashing (o padr\u00e3o \u00e9 2)<\/li>\n<\/ul>\n<p>Veja o seguinte c\u00f3digo:<\/p>\n<pre><code class=\"language-php\">$options = ['memory_cost' =&gt; 1&lt;&lt;11, 'time_cost' =&gt; 4, 'threads' =&gt; 2];\npassword_hash('password', PASSWORD_ARGON2ID, $options);<\/code><\/pre>\n<p>Mais informa\u00e7\u00f5es e exemplos sobre a <a href=\"https:\/\/wiki.php.net\/rfc\/argon2_password_hash_enhancements\">RFC<\/a>.<\/p>\n<h4>PHP 7.3 RFC<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/argon2_password_hash_enhancements\" target=\"_blank\" rel=\"noopener noreferrer\">Argon2 Password Hash Enhancements<\/a><\/li>\n<\/ul>\n<h4>Recursos adicionais<\/h4>\n<ul>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Argon2\" target=\"_blank\" rel=\"noopener noreferrer\">Argon2<\/a> (Wikipedia)<\/li>\n<li><a href=\"https:\/\/www.cryptolux.org\/images\/0\/0d\/Argon2.pdf\">Argon2: a fun\u00e7\u00e3o de mem\u00f3ria dura para hashing de senha e outras aplica\u00e7\u00f5es<\/a> (PDF)<\/li>\n<\/ul>\n<h2 id=\"deprecations\">Deprecia\u00e7\u00f5es<\/h2>\n<p>As seguintes fun\u00e7\u00f5es\/funcionalidades ser\u00e3o depreciadas com o PHP 7.3 e removidas n\u00e3o depois do PHP 8.0.<\/p>\n<h3>Depreciar e remover image2wbmp()<\/h3>\n<p>A fun\u00e7\u00e3o <strong>image2wbmp()<\/strong> produz ou salva uma vers\u00e3o <a href=\"https:\/\/en.wikipedia.org\/wiki\/Wireless_Application_Protocol_Bitmap_Format\">WBMP<\/a> de uma determinada imagem. Esta fun\u00e7\u00e3o tem tr\u00eas argumentos: um recurso de imagem, um nome de arquivo (o caminho para o arquivo salvo) e uma cor de primeiro plano.<br \/>\nA partir do PHP 5.0, ele \u00e9 id\u00eantico ao <a href=\"http:\/\/php.net\/manual\/en\/function.imagewbmp.php\">imagewbmp()<\/a>, ent\u00e3o esta <a href=\"https:\/\/wiki.php.net\/rfc\/image2wbmp\">RFC<\/a> prop\u00f5e depreci\u00e1-lo e remov\u00ea-lo.<br \/>\nDesde o PHP 7.3, cada chamada para <code>image2wbmp()<\/code> emitiria um aviso de deprecia\u00e7\u00e3o. Ap\u00f3s a remo\u00e7\u00e3o, cada chamada provocaria um erro fatal.<\/p>\n<h4>PHP 7.3 RFC<\/h4>\n<ul>\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/image2wbmp\" target=\"_blank\" rel=\"noopener noreferrer\">Deprecate and Remove image2wbmp()<\/a><\/li>\n<\/ul>\n<h3>Depreciar e Remover Constantes n\u00e3o Sens\u00edveis a Mai\u00fasculas e Min\u00fasculas<\/h3>\n<p>O PHP atualmente suporta constantes sens\u00edveis e n\u00e3o sens\u00edveis a mai\u00fasculas e min\u00fasculas. De qualquer forma, constantes<strong> n\u00e3o sens\u00edveis a mai\u00fasculas e min\u00fasculas<\/strong> s\u00e3o suportadas, mas consideradas sujeitas a inconsist\u00eancias em funcionalidades e complexas de usar.<br \/>\nEsta proposta come\u00e7a com as seguintes premissas:<\/p>\n<ul>\n<li><a href=\"http:\/\/php.net\/manual\/en\/language.oop5.constants.php\">as constantes de classe<\/a> s\u00e3o sempre sens\u00edveis a mai\u00fasculas e min\u00fasculas<\/li>\n<li>constantes globais declaradas com <code>const<\/code> s\u00e3o sempre case-sensitive<\/li>\n<li>constantes definidas com <code>define()<\/code> s\u00e3o case-sensitive por padr\u00e3o<\/li>\n<\/ul>\n<p>Al\u00e9m disso, a <a href=\"http:\/\/php.net\/manual\/en\/language.constants.php\">Refer\u00eancia \u00e0 Linguagem PHP<\/a> afirma explicitamente:<\/p>\n<blockquote><p>Uma constante \u00e9 sens\u00edvel a mai\u00fasculas e min\u00fasculas por padr\u00e3o. Por conven\u00e7\u00e3o, os identificadores de constantes s\u00e3o sempre em mai\u00fasculas.<\/p><\/blockquote>\n<p>Dito isto, esta RFC prop\u00f5e as seguintes altera\u00e7\u00f5es:<\/p>\n<ul>\n<li>Deprecate chamando <code>define()<\/code> com o terceiro par\u00e2metro definido como <code>true<\/code> &#8211; PHP 7.3<\/li>\n<li>Depreciar o acesso a constantes n\u00e3o sens\u00edveis a mai\u00fasculas e min\u00fasculas com um inv\u00f3lucro diferente da declara\u00e7\u00e3o (com exce\u00e7\u00e3o de <code>true<\/code>, <code>false<\/code> e <code>null<\/code>) &#8211; PHP 7.3<\/li>\n<li>Remova a possibilidade de declarar constantes n\u00e3o sens\u00edveis a mai\u00fasculas e min\u00fasculas &#8211; PHP 8.0<\/li>\n<li>Converta <code>verdadeiro<\/code>, <code>falso<\/code> e <code>nulo<\/code> de constantes em caixa especial em palavras-chave reservadas &#8211; PHP 8.0<\/li>\n<\/ul>\n<h4>PHP 7.3 RFC<\/h4>\n<p><a href=\"https:\/\/wiki.php.net\/rfc\/case_insensitive_constant_deprecation\">Depreciar e remover constantes n\u00e3o sens\u00edveis a mai\u00fasculas e min\u00fasculas<\/a>.<\/p>\n<h3>Deprecia\u00e7\u00f5es Adicionais para PHP 7.3<\/h3>\n<p>Aqui est\u00e1 uma lista r\u00e1pida de funcionalidades sendo depreciadas no PHP 7.3. N\u00e3o \u00e9 exaustivo, s\u00e3o apenas as propostas de deprecia\u00e7\u00e3o que eu pessoalmente considero mais relevantes. Para uma lista completa das deprecia\u00e7\u00f5es propostas, veja <a href=\"https:\/\/wiki.php.net\/rfc\/deprecations_php_7_3\">Deprecia\u00e7\u00f5es para PHP 7.3<\/a>.<\/p>\n<p><strong>Apelidos de fun\u00e7\u00f5es mbstring indocumentados<\/strong>: h\u00e1 um n\u00famero de apelidos de fun\u00e7\u00f5es <a href=\"http:\/\/php.net\/manual\/en\/book.mbstring.php\">mbstring<\/a> indocumentados que s\u00e3o duplica\u00e7\u00f5es de fun\u00e7\u00f5es equivalentes usando prefixo <code>mb_<\/code>. Por exemplo, <code>mbereg<\/code> \u00e9 um alias de <code>mb_ereg<\/code>.<br \/>\nTodas essas fun\u00e7\u00f5es seriam marcadas como depreciadas e um aviso de deprecia\u00e7\u00e3o seria lan\u00e7ado quando elas fossem encontradas durante a compila\u00e7\u00e3o.<\/p>\n<p><strong>Fun\u00e7\u00f5es de busca por corda com agulha inteira<\/strong>: estas fun\u00e7\u00f5es operam normalmente com agulhas de corda. Se uma agulha sem cordas \u00e9 dada, ela \u00e9 convertida para um inteiro e aplicada como o valor ordinal de um caractere (leia mais no <a href=\"http:\/\/php.net\/manual\/en\/function.strpos.php\">manual do PHP<\/a>). Aqui est\u00e1 <a href=\"https:\/\/wiki.php.net\/rfc\/deprecations_php_7_3#string_search_functions_with_integer_needle\">um exemplo da RFC<\/a>:<\/p>\n<pre><code class=\"language-php\">$str = \"There are 10 apples\";\nvar_dump(strpos($str, \"10\")); \/\/ int(10)\nvar_dump(strpos($str, 10));   \/\/ bool(false)<\/code><\/pre>\n<p>Isso \u00e9 considerado confuso e causa problemas imprevis\u00edveis porque o tipo pode mudar com a fonte de dados do usu\u00e1rio. Por esse motivo, a RFC prop\u00f5e a emiss\u00e3o de um aviso de deprecia\u00e7\u00e3o se uma agulha sem cordas for passada para uma das seguintes fun\u00e7\u00f5es:<\/p>\n<ul>\n<li><code>strpos<\/code><\/li>\n<li><code>strrpos<\/code><\/li>\n<li><code>stripos<\/code><\/li>\n<li><code>strripos<\/code><\/li>\n<li><code>strstr<\/code><\/li>\n<li><code>strchr<\/code><\/li>\n<li><code>strrchr<\/code><\/li>\n<li><code>stristr<\/code><\/li>\n<\/ul>\n<p>No PHP 8.0, o aviso de deprecia\u00e7\u00e3o deve ser removido e as agulhas devem ser automaticamente convertidas em strings. <\/p>\n<p><code><strong>fgetss()<\/strong><\/code><strong> function e <\/strong><code><strong>string.strip_tags<\/strong><\/code><strong> stream filter<\/strong>: <code>fgetss()<\/code> e <code>string.strip_tags<\/code> strip tags de um stream enquanto o l\u00eaem. Tanto a fun\u00e7\u00e3o quanto o filtro exp\u00f5em a funcionalidade <a href=\"http:\/\/php.net\/manual\/en\/function.strip-tags.php\">strip_tags()<\/a> tornando a implementa\u00e7\u00e3o de <code>strip_tags()<\/code> mais complexa, j\u00e1 que uma m\u00e1quina de estado de streaming \u00e9 necess\u00e1ria. Al\u00e9m disso, a RFC aponta <a href=\"https:\/\/wiki.php.net\/rfc\/deprecations_php_7_3#fgetss_function_and_stringstrip_tags_filter\">outra desvantagem<\/a> dessas fun\u00e7\u00f5es:<\/p>\n<blockquote><p>Por outro lado, essas fun\u00e7\u00f5es parecem ser de muito pouca utilidade. <code>strip_tags()<\/code> itself, devido \u00e0s suas limita\u00e7\u00f5es e bugs conhecidos, j\u00e1 tem muito poucas aplica\u00e7\u00f5es leg\u00edtimas. N\u00e3o h\u00e1 necessidade de fornecer suporte nativo para aplicativos de streaming al\u00e9m disso.<\/p><\/blockquote>\n<p>Ent\u00e3o a RFC prop\u00f5e marcar <code>fgetss()<\/code>, <code>gzgetss()<\/code> e <code>SplFileObject::fgetss()<\/code> como depreciados.<\/p>\n<h2>O que o PHP 7.3 Significa para Usu\u00e1rios do WordPress?<\/h2>\n<p><a href=\"https:\/\/wordpress.org\/about\/stats\/\">De acordo com a p\u00e1gina oficial de Estat\u00edsticas do WordPress,<\/a> a partir de agora, apenas 32,9% dos usu\u00e1rios do WordPress atualizaram para PHP 7 ou superior. Apenas 4% est\u00e3o usando <a href=\"https:\/\/kinsta.com\/pt\/blog\/php-7-2\/\">PHP 7.2<\/a>. Voc\u00ea pode ver que a grande maioria dos usu\u00e1rios, mais de 38%, ainda est\u00e3o rodando no PHP 5.6. O que \u00e9 ainda mais assustador \u00e9 que mais de 28,5% dos usu\u00e1rios est\u00e3o usando vers\u00f5es PHP n\u00e3o suportadas. Em Dezembro de 2016, o WordPress.org aumentou sua <a href=\"https:\/\/wordpress.org\/about\/requirements\/\">recomenda\u00e7\u00e3o oficial<\/a> para usu\u00e1rios de PHP 5.6 para PHP 7 ou superior.<\/p>\n<figure id=\"attachment_31275\" aria-describedby=\"caption-attachment-31275\" style=\"width: 1404px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-31275 size-full\" src=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2018\/08\/versooes-wordpress-php.png\" alt=\"Vers\u00f5es do WordPress PHP\" width=\"1404\" height=\"1054\"><figcaption id=\"caption-attachment-31275\" class=\"wp-caption-text\">Vers\u00f5es do WordPress PHP<\/figcaption><\/figure>\n<h3>Desempenho do PHP 7<\/h3>\n<p>Os n\u00fameros acima s\u00e3o especialmente desencorajadores vindo de um ponto de vista de desempenho, j\u00e1 que o PHP 7 mostrou ser significativamente mais r\u00e1pido. Aqui est\u00e3o algumas estat\u00edsticas:<\/p>\n<ul>\n<li><a href=\"http:\/\/talks.php.net\/fluent15#\/wpbench\">Benchmarks<\/a> oficiais do PHP mostram que o PHP 7 permite que o sistema execute duas vezes mais solicita\u00e7\u00f5es por segundo em compara\u00e7\u00e3o com o PHP 5.6, em quase metade da lat\u00eancia.<\/li>\n<li>Christian Vigh tamb\u00e9m publicou uma <a href=\"https:\/\/www.phpclasses.org\/blog\/post\/493-php-performance-evolution.html\">compara\u00e7\u00e3o de performance PHP<\/a> na qual ele descobriu que o PHP 5.2 era 400% mais lento que o PHP 7.<\/li>\n<\/ul>\n<p>Fizemos os nossos pr\u00f3prios <a href=\"https:\/\/kinsta.com\/pt\/blog\/benchmarks-definitivos-do-php\/\">benchmarks de desempenho PHP<\/a>. E similarmente aos benchmarks acima, vimos que o WordPress 5.0 no PHP 7.3 poderia executar quase tr\u00eas vezes mais transa\u00e7\u00f5es (pedidos) por segundo em compara\u00e7\u00e3o com o PHP 5.6.<\/p>\n<figure id=\"attachment_37393\" aria-describedby=\"caption-attachment-37393\" style=\"width: 940px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-37393 size-full\" src=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2018\/12\/referencias-wordpress-5-0-php.png\" alt=\"Refer\u00eancias do WordPress 5.0 PHP\" width=\"940\" height=\"788\"><figcaption id=\"caption-attachment-37393\" class=\"wp-caption-text\">Refer\u00eancias do WordPress 5.0 PHP<\/figcaption><\/figure>\n<ul>\n<li>WordPress 5.0 PHP 5.6 benchmark: 91,64 req\/sec<\/li>\n<li>Resultados de benchmark do WordPress 5.0 PHP 7.0: 206.71 req\/sec<\/li>\n<li>Resultados de benchmark do WordPress 5.0 PHP 7.1: 210.98 req\/sec<\/li>\n<li>Resultados de benchmark do WordPress 5.0 PHP 7.2: 229.18 req\/sec<\/li>\n<li>WordPress 5.0 <strong>PHP 7.3 resultados de benchmark: 253.20 req\/sec <\/strong>\ud83c\udfc6<\/li>\n<\/ul>\n<p>Tamb\u00e9m \u00e9 interessante notar que o WordPress 4.9.8 no PHP 7.3 foi ligeiramente mais r\u00e1pido que o WordPress 5.0.<\/p>\n<figure id=\"attachment_37398\" aria-describedby=\"caption-attachment-37398\" style=\"width: 940px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-37398 size-full\" src=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2018\/12\/referencias-wordpress-4-9-8-php.png\" alt=\"Refer\u00eancias do WordPress 4.9.8 PHP\" width=\"940\" height=\"788\"><figcaption id=\"caption-attachment-37398\" class=\"wp-caption-text\">Refer\u00eancias do WordPress 4.9.8 PHP<\/figcaption><\/figure>\n<ul>\n<li>WordPress 4.9.8 PHP 5.6 benchmark: 97,59 req\/sec<\/li>\n<li>Resultados de benchmark do WordPress 4.9.8 PHP 7.0: 221.42 req\/sec<\/li>\n<li>WordPress 4.9.8 PHP 7.1 resultados de benchmark: 233.78 req\/sec<\/li>\n<li>WordPress 4.9.8 PHP 7.2 resultados de benchmark: 250.36 req\/sec<\/li>\n<li>WordPress 4.9.8 <strong>PHP 7.3 resultados de benchmark: 276.31 req\/sec <\/strong>\ud83c\udfc6<\/li>\n<\/ul>\n<p>Muitos s\u00e3o lentos para atualizar simplesmente por causa do tempo envolvido com o teste de novos todos os seus plugins de terceiros e temas para garantir que eles funcionam corretamente. Mas muitas vezes, resume-se ao fato de ainda n\u00e3o o terem feito.<\/p>\n<h3>Verificando sua Vers\u00e3o PHP<\/h3>\n<p>N\u00e3o tem certeza de qual vers\u00e3o do PHP voc\u00ea est\u00e1 executando? Uma das maneiras mais f\u00e1ceis de verificar \u00e9 usar uma ferramenta como o <a href=\"https:\/\/kinsta.com\/pt\/blog\/teste-de-velocidade-pingdom\/\">Pingdom<\/a> ou o Google Chrome Devtools. O primeiro cabe\u00e7alho do pedido HTTP mostrar\u00e1 tipicamente a vers\u00e3o.<\/p>\n<figure id=\"attachment_13685\" aria-describedby=\"caption-attachment-13685\" style=\"width: 1679px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-13685 size-full\" src=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2017\/10\/verificar-versao-php.png\" alt=\"Verificar vers\u00e3o do PHP\" width=\"1679\" height=\"644\"><figcaption id=\"caption-attachment-13685\" class=\"wp-caption-text\">Verificar vers\u00e3o do PHP<\/figcaption><\/figure>\n<p>Isso depende da m\u00e1quina n\u00e3o modificar o valor do cabe\u00e7alho <code>X-Powered-By<\/code>. Se o fizerem, voc\u00ea pode n\u00e3o ver sua vers\u00e3o do PHP. Nesse caso, voc\u00ea tamb\u00e9m pode instalar um plugin gratuito, como <a href=\"https:\/\/wordpress.org\/plugins\/version-info\/\">Version Info,<\/a> que mostrar\u00e1 algumas informa\u00e7\u00f5es b\u00e1sicas do servidor no rodap\u00e9 do seu painel de administra\u00e7\u00e3o do WordPress.<\/p>\n<figure id=\"attachment_37448\" aria-describedby=\"caption-attachment-37448\" style=\"width: 1942px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-37448 size-full\" src=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2018\/08\/verifique-versao-php-wordpress.png\" alt=\"Verifique a vers\u00e3o PHP no WordPress\" width=\"1942\" height=\"1038\"><figcaption id=\"caption-attachment-37448\" class=\"wp-caption-text\">Verifique a vers\u00e3o PHP no WordPress<\/figcaption><\/figure>\n<p>Alternativamente, voc\u00ea tamb\u00e9m pode <a href=\"https:\/\/kinsta.com\/pt\/blog\/versoes-do-php\/\">fazer upload de um arquivo via FTP<\/a> para ver sua vers\u00e3o do PHP, ou alcan\u00e7ar sua m\u00e1quina e perguntar.<\/p>\n<h3>Atualizando para PHP 7.3<\/h3>\n<p>A vers\u00e3o final do PHP 7.3 est\u00e1 aqui e voc\u00ea pode come\u00e7ar a test\u00e1-lo imediatamente. Voc\u00ea pode <a href=\"https:\/\/kinsta.com\/pt\/blog\/instalar-wordpress-localmente\/\">testar seu site WordPress localmente<\/a> ou verificar seus scripts em um ambiente como o <a href=\"https:\/\/docs.docker.com\/get-started\/\">Docker<\/a>, que permite que voc\u00ea teste diferentes vers\u00f5es do PHP a partir da linha de comando.<\/p>\n<p>Ou voc\u00ea pode utilizar um ambiente de encena\u00e7\u00e3o, pois isso se assemelhar\u00e1 mais de perto a um local de produ\u00e7\u00e3o ao vivo. Crie um <a href=\"https:\/\/kinsta.com\/pt\/docs\/hospedagem-de-wordpress\/ambiente-de-teste\/\">ambiente de testes<\/a> com alguns cliques simples no painel do MyKinsta.<\/p>\n<figure id=\"attachment_34566\" aria-describedby=\"caption-attachment-34566\" style=\"width: 1670px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-34566 size-full\" src=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2018\/10\/ambiente-preparacao-wordpress.png\" alt=\"Ambiente de prepara\u00e7\u00e3o do WordPress\" width=\"1670\" height=\"735\"><figcaption id=\"caption-attachment-34566\" class=\"wp-caption-text\">Ambiente de prepara\u00e7\u00e3o do WordPress<\/figcaption><\/figure>\n<p>Recomendamos sempre a realiza\u00e7\u00e3o de testes minuciosos antes de utiliz\u00e1-lo em um local de produ\u00e7\u00e3o. Para fazer isso, basta alterar o mecanismo PHP para o site de prepara\u00e7\u00e3o em &#8220;Ferramentas&#8221; e voc\u00ea pode come\u00e7ar a testar para garantir a compatibilidade de seus plugins e temas de terceiros.<\/p>\n<figure id=\"attachment_37422\" aria-describedby=\"caption-attachment-37422\" style=\"width: 1546px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-37422 size-full\" src=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2018\/12\/alterar-php-7-3.png\" alt=\"Alterar para PHP 7.3\" width=\"1546\" height=\"878\"><figcaption id=\"caption-attachment-37422\" class=\"wp-caption-text\">Alterar para PHP 7.3<\/figcaption><\/figure>\n<p>Depois de confirmar que tudo funciona, voc\u00ea pode mudar o seu site de produ\u00e7\u00e3o para PHP 7.3 ou se voc\u00ea fez alguma altera\u00e7\u00e3o, tamb\u00e9m <a href=\"https:\/\/kinsta.com\/pt\/docs\/hospedagem-de-wordpress\/ambiente-de-teste\/#push-staging-to-live-1\">empurre seu site de testes para o ar<\/a>.<\/p>\n<h2>Resumo<\/h2>\n<p>A \u00faltima e maior vers\u00e3o do PHP est\u00e1 aqui. Ele nos traz brindes como heredocs e nowdocs flex\u00edveis, v\u00edrgulas trailing em chamadas de fun\u00e7\u00f5es, list() atribui\u00e7\u00f5es de refer\u00eancia e mais. Neste post, fornecemos uma vis\u00e3o geral de nossas melhorias e mudan\u00e7as favoritas, mas tamb\u00e9m gostar\u00edamos de saber quais s\u00e3o as suas favoritas e de que forma voc\u00ea as aproveitar\u00e1. Deixe-nos saber nos coment\u00e1rios abaixo. E n\u00e3o se esque\u00e7a <a href=\"https:\/\/kinsta.com\/pt\/blog\/o-php-morreu\/\">que PHP n\u00e3o est\u00e1 morto<\/a>!<\/p>\n\n<p>Voc\u00ea pode encontrar a lista completa de propostas do PHP 7.3 na p\u00e1gina <a href=\"https:\/\/wiki.php.net\/rfc#php_73\">Requests For Comments<\/a> e nas <a href=\"https:\/\/github.com\/php\/php-src\/blob\/php-7.3.0beta1\/UPGRADING\">Notas de Atualiza\u00e7\u00e3o do PHP 7.3<\/a> do GitHub.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A partir de 6 de Dezembro de 2018, a \u00faltima e maior vers\u00e3o, PHP 7.3 est\u00e1 aqui! Com ele v\u00eam novos recursos \u00fateis, funcionalidades, deprecia\u00e7\u00f5es, um &#8230;<\/p>\n","protected":false},"author":36,"featured_media":30065,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[32,44],"topic":[998],"class_list":["post-30056","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-php","tag-webdev","topic-atualizacoes-php"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>O Que h\u00e1 de Novo no PHP 7.3 (Agora Dispon\u00edvel na Kinsta) - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"O PHP 7.3 est\u00e1 aqui e com ele v\u00eam novas funcionalidades, deprecia\u00e7\u00f5es, corre\u00e7\u00f5es de bugs e um aumento na performance. Confira esta vis\u00e3o geral do que h\u00e1 de novo no PHP 7.3!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"O Que h\u00e1 de Novo no PHP 7.3 (Agora Dispon\u00edvel na Kinsta)\" \/>\n<meta property=\"og:description\" content=\"O PHP 7.3 est\u00e1 aqui e com ele v\u00eam novas funcionalidades, deprecia\u00e7\u00f5es, corre\u00e7\u00f5es de bugs e um aumento na performance. Confira esta vis\u00e3o geral do que h\u00e1 de novo no PHP 7.3!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstapt\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-10-15T15:30:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-25T12:24:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2019\/10\/php-7.3.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Carlo Daniele\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"O PHP 7.3 est\u00e1 aqui e com ele v\u00eam novas funcionalidades, deprecia\u00e7\u00f5es, corre\u00e7\u00f5es de bugs e um aumento na performance. Confira esta vis\u00e3o geral do que h\u00e1 de novo no PHP 7.3!\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2019\/10\/php-7.3.png\" \/>\n<meta name=\"twitter:creator\" content=\"@carlodaniele\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_pt\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlo Daniele\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/\"},\"author\":{\"name\":\"Carlo Daniele\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\"},\"headline\":\"O Que h\u00e1 de Novo no PHP 7.3 (Agora Dispon\u00edvel na Kinsta)\",\"datePublished\":\"2019-10-15T15:30:33+00:00\",\"dateModified\":\"2025-02-25T12:24:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/\"},\"wordCount\":3975,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2019\/10\/php-7.3.png\",\"keywords\":[\"php\",\"webdev\"],\"articleSection\":[\"Desenvolvimento WordPress\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/\",\"url\":\"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/\",\"name\":\"O Que h\u00e1 de Novo no PHP 7.3 (Agora Dispon\u00edvel na Kinsta) - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2019\/10\/php-7.3.png\",\"datePublished\":\"2019-10-15T15:30:33+00:00\",\"dateModified\":\"2025-02-25T12:24:18+00:00\",\"description\":\"O PHP 7.3 est\u00e1 aqui e com ele v\u00eam novas funcionalidades, deprecia\u00e7\u00f5es, corre\u00e7\u00f5es de bugs e um aumento na performance. Confira esta vis\u00e3o geral do que h\u00e1 de novo no PHP 7.3!\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2019\/10\/php-7.3.png\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2019\/10\/php-7.3.png\",\"width\":1460,\"height\":730,\"caption\":\"O que h\u00e1 de Novo no PHP 7.3 (Agora Dispon\u00edvel no Kinsta)\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Atualiza\u00e7\u00f5es do PHP\",\"item\":\"https:\/\/kinsta.com\/pt\/topicos\/atualizacoes-php\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"O Que h\u00e1 de Novo no PHP 7.3 (Agora Dispon\u00edvel na Kinsta)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/pt\/#website\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstapt\/\",\"https:\/\/x.com\/kinsta_pt\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\",\"name\":\"Carlo Daniele\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g\",\"caption\":\"Carlo Daniele\"},\"description\":\"Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.\",\"sameAs\":[\"https:\/\/frammentidicodice.com\/\",\"https:\/\/x.com\/carlodaniele\"],\"url\":\"https:\/\/kinsta.com\/pt\/blog\/author\/carlodaniele\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"O Que h\u00e1 de Novo no PHP 7.3 (Agora Dispon\u00edvel na Kinsta) - Kinsta\u00ae","description":"O PHP 7.3 est\u00e1 aqui e com ele v\u00eam novas funcionalidades, deprecia\u00e7\u00f5es, corre\u00e7\u00f5es de bugs e um aumento na performance. Confira esta vis\u00e3o geral do que h\u00e1 de novo no PHP 7.3!","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:\/\/kinsta.com\/pt\/blog\/php-7-3\/","og_locale":"pt_PT","og_type":"article","og_title":"O Que h\u00e1 de Novo no PHP 7.3 (Agora Dispon\u00edvel na Kinsta)","og_description":"O PHP 7.3 est\u00e1 aqui e com ele v\u00eam novas funcionalidades, deprecia\u00e7\u00f5es, corre\u00e7\u00f5es de bugs e um aumento na performance. Confira esta vis\u00e3o geral do que h\u00e1 de novo no PHP 7.3!","og_url":"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstapt\/","article_published_time":"2019-10-15T15:30:33+00:00","article_modified_time":"2025-02-25T12:24:18+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2019\/10\/php-7.3.png","type":"image\/png"}],"author":"Carlo Daniele","twitter_card":"summary_large_image","twitter_description":"O PHP 7.3 est\u00e1 aqui e com ele v\u00eam novas funcionalidades, deprecia\u00e7\u00f5es, corre\u00e7\u00f5es de bugs e um aumento na performance. Confira esta vis\u00e3o geral do que h\u00e1 de novo no PHP 7.3!","twitter_image":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2019\/10\/php-7.3.png","twitter_creator":"@carlodaniele","twitter_site":"@kinsta_pt","twitter_misc":{"Escrito por":"Carlo Daniele","Tempo estimado de leitura":"19 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/"},"author":{"name":"Carlo Daniele","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63"},"headline":"O Que h\u00e1 de Novo no PHP 7.3 (Agora Dispon\u00edvel na Kinsta)","datePublished":"2019-10-15T15:30:33+00:00","dateModified":"2025-02-25T12:24:18+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/"},"wordCount":3975,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2019\/10\/php-7.3.png","keywords":["php","webdev"],"articleSection":["Desenvolvimento WordPress"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/pt\/blog\/php-7-3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/","url":"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/","name":"O Que h\u00e1 de Novo no PHP 7.3 (Agora Dispon\u00edvel na Kinsta) - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2019\/10\/php-7.3.png","datePublished":"2019-10-15T15:30:33+00:00","dateModified":"2025-02-25T12:24:18+00:00","description":"O PHP 7.3 est\u00e1 aqui e com ele v\u00eam novas funcionalidades, deprecia\u00e7\u00f5es, corre\u00e7\u00f5es de bugs e um aumento na performance. Confira esta vis\u00e3o geral do que h\u00e1 de novo no PHP 7.3!","breadcrumb":{"@id":"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/pt\/blog\/php-7-3\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/#primaryimage","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2019\/10\/php-7.3.png","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2019\/10\/php-7.3.png","width":1460,"height":730,"caption":"O que h\u00e1 de Novo no PHP 7.3 (Agora Dispon\u00edvel no Kinsta)"},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/pt\/blog\/php-7-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/pt\/"},{"@type":"ListItem","position":2,"name":"Atualiza\u00e7\u00f5es do PHP","item":"https:\/\/kinsta.com\/pt\/topicos\/atualizacoes-php\/"},{"@type":"ListItem","position":3,"name":"O Que h\u00e1 de Novo no PHP 7.3 (Agora Dispon\u00edvel na Kinsta)"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/pt\/#website","url":"https:\/\/kinsta.com\/pt\/","name":"Kinsta\u00ae","description":"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura","publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/pt\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstapt\/","https:\/\/x.com\/kinsta_pt","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63","name":"Carlo Daniele","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g","caption":"Carlo Daniele"},"description":"Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.","sameAs":["https:\/\/frammentidicodice.com\/","https:\/\/x.com\/carlodaniele"],"url":"https:\/\/kinsta.com\/pt\/blog\/author\/carlodaniele\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/30056","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/comments?post=30056"}],"version-history":[{"count":8,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/30056\/revisions"}],"predecessor-version":[{"id":55488,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/30056\/revisions\/55488"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/30056\/translations\/en"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/30056\/translations\/es"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/30056\/translations\/it"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/30056\/translations\/fr"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/30056\/translations\/se"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/30056\/translations\/pt"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/30056\/translations\/nl"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/30056\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/30056\/translations\/jp"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/30056\/translations\/dk"},{"href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/30056\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media\/30065"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media?parent=30056"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/tags?post=30056"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/topic?post=30056"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}