'PHP 8.3 é uma atualização importante da linguagem PHP. Ela contém muitos recursos novos, como tipagem explícita de constantes de classe, clonagem profunda de propriedades somente leitura e adições à funcionalidade de aleatoriedade. Como sempre, também inclui melhorias de desempenho, correções de bugs e limpeza geral.', 'documentation' => 'Doc', 'main_title' => 'Lançado!', 'main_subtitle' => 'PHP 8.3 é uma atualização importante da linguagem PHP.
Ela contém muitos recursos novos, como tipagem explícita de constantes de classe, clonagem profunda de propriedades somente leitura e adições à funcionalidade de aleatoriedade. Como sempre, também inclui melhorias de desempenho, correções de bugs e limpeza geral.', 'upgrade_now' => 'Atualize para PHP 8.3 agora!', 'readonly_title' => 'Clonagem profunda de propriedades somente leitura', 'readonly_description' => 'Propriedades readonly agora podem ser modificadas uma vez dentro do método mágico __clone para permitir a clonagem profunda de propriedades somente leitura.', 'json_validate_title' => 'Nova função json_validate()', 'json_validate_description' => 'json_validate() permite verificar se uma string é sintaticamente válida em JSON, sendo mais eficiente do que json_decode().', 'typed_class_constants_title' => 'Constantes de classe tipadas', 'override_title' => 'Novo atributo #[\Override]', 'override_description' => 'Ao adicionar o atributo #[\Override] a um método, o PHP garantirá que um método com o mesmo nome exista em uma classe pai ou em uma interface implementada. Adicionar o atributo torna claro que a sobreposição de um método pai é intencional e simplifica a refatoração, pois a remoção de um método pai sobreposto será detectada.', 'randomizer_getbytesfromstring_title' => 'Novo método Randomizer::getBytesFromString()', 'randomizer_getbytesfromstring_description' => 'A Extensão Random que foi adicionada no PHP 8.2 foi ampliada com um novo método para gerar strings aleatórias consistindo apenas de bytes específicos. Este método permite que o desenvolvedor gere facilmente identificadores aleatórios, como nomes de domínio e strings numéricas de comprimento arbitrário.', 'randomizer_getfloat_nextfloat_title' => 'Novos métodos Randomizer::getFloat() e Randomizer::nextFloat()', 'randomizer_getfloat_nextfloat_description' => '

Devido à precisão limitada e ao arredondamento implícito de números de ponto flutuante, gerar um float imparcial dentro de um intervalo específico não é trivial, e as soluções comumente usadas no nível do usuário podem gerar resultados tendenciosos ou números fora do intervalo solicitado.

O Randomizer também foi ampliado com dois métodos para gerar floats de maneira imparcial. O método Randomizer::getFloat() utiliza o algoritmo da seção γ que foi publicado em Drawing Random Floating-Point Numbers from an Interval. Frédéric Goualard, ACM Trans. Model. Comput. Simul., 32:3, 2022.

', 'dynamic_class_constant_fetch_title' => 'Recuperação dinâmica de constantes de classe', 'command_line_linter_title' => 'O linter de linha de comando suporta vários arquivos', 'command_line_linter_description' => '

O linter da linha de comando agora aceita vários nomes de arquivos para lint

', 'new_classes_title' => 'Novas classes, interfaces e funções', 'new_dom' => 'Novos métodos DOMElement::getAttributeNames(), DOMElement::insertAdjacentElement(), DOMElement::insertAdjacentText(), DOMElement::toggleAttribute(), DOMNode::contains(), DOMNode::getRootNode(), DOMNode::isEqualNode(), DOMNameSpaceNode::contains() e DOMParentNode::replaceChildren().', 'new_intl' => 'Novos métodos IntlCalendar::setDate(), IntlCalendar::setDateTime(), IntlGregorianCalendar::createFromDate() e IntlGregorianCalendar::createFromDateTime().', 'new_ldap' => 'Novas funções ldap_connect_wallet() e ldap_exop_sync().', 'new_mb_str_pad' => 'Nova função mb_str_pad().', 'new_posix' => 'Novas funções posix_sysconf(), posix_pathconf(), posix_fpathconf() e posix_eaccess().', 'new_reflection' => 'Novo método ReflectionMethod::createFromMethodName().', 'new_socket' => 'Nova função socket_atmark().', 'new_str' => 'Nova função str_increment(), str_decrement() e stream_context_set_options().', 'new_ziparchive' => 'Novo método ZipArchive::getArchiveFlag().', 'new_openssl_ec' => 'Suporte para geração de chaves EC com parâmetros EC personalizados na extensão OpenSSL.', 'new_ini' => 'Nova configuração INI zend.max_allowed_stack_size para definir o tamanho máximo permitido da pilha.', 'ini_fallback' => 'php.ini agora suporta sintaxe de valor substituto/padrão.', 'anonymous_readonly' => 'Classes anônimas agora podem ser somente leitura.', 'bc_title' => 'Alterações obsoletas e incompatibilidades com versões anteriores', 'bc_datetime' => 'Exceções de Date/Time mais apropriadas.', 'bc_arrays' => 'Atribuir um índice negativo n a um array vazio agora garantirá que o próximo índice seja n + 1 em vez de 0.', 'bc_range' => 'Alterações na função range().', 'bc_traits' => 'Alterações na redeclaração de propriedades estáticas em traits.', 'bc_umultipledecimalseparators' => 'A constante U_MULTIPLE_DECIMAL_SEPERATORS foi obsoleta em favor de U_MULTIPLE_DECIMAL_SEPARATORS.', 'bc_mtrand' => 'A variante MT_RAND_PHP do Mt19937 está obsoleta.', 'bc_reflection' => 'O tipo de retorno de ReflectionClass::getStaticProperties() não será mais nulo.', 'bc_ini' => 'As configurações INI assert.active, assert.bail, assert.callback, assert.exception e assert.warning foram obsoletas.', 'bc_standard' => 'Chamar get_class() e get_parent_class() sem argumentos está obsoleto.', 'bc_sqlite3' => 'SQLite3: modo de erro padrão definido como exceções.', 'footer_title' => 'Melhorias de desempenho, sintaxe aprimorada e maior segurança de tipos.', 'footer_description' => '

Para downloads do código-fonte do PHP 8.3, visite a página de downloads. Binários para Windows podem ser encontrados no site PHP for Windows. A lista de alterações está registrada no ChangeLog.

O guia de migração está disponível no Manual do PHP. Consulte-o para obter uma lista detalhada de novos recursos e alterações incompatíveis com versões anteriores.

', ];