Quais as principais mudanças do PHP versão 5.3 para 5.4?

De Wiki
Ir para: navegação, pesquisa

Listamos a seguir as principais mudanças na atualização do PHP 5.3 para 5.4, conforme documentação oficial. Para mais informações consulte: http://php.net/manual/pt_BR/migration54.php

Incompatibilidade com versão anterior:

  • O Safe Mode não é mais suportado;
  • Magic Quotes foi removido;
  • As directivas register_globals e register_long_arrays foram removidos do php.ini;
  • Call-time pass por referência foi removido;
  • O break e continue não aceitam mais argumentos de variável;
  • Na extensão date and Time, o fuso horário já não pode ser definido usando a variável de ambiente TZ;
  • Offsets string não numérica agora retorna false em isset() e true em empty(); Offsets do tipo double, bool and null agora produzem um E_NOTICE;
  • Conversão de uma matriz em uma string agora irá gerar E_NOTICE, mas o resultado do elenco ainda será a string "matriz";
  • Transformando NULL, FALSE, ou uma string vazia em um objeto através da adição de uma propriedade agora irá emitir um erro nível E_WARNING;
  • Não são mais permitido utilizar códigos como função;
  • Os algoritmos de hash Salsa10 e Salsa20 foram removidos;
  • array_combine(), agora retorna array() em vez de FALSE quando duas matrizes vazias são fornecidas como parâmetros;
  • htmlentities() com conjuntos de caracteres asiáticos funciona como htmlspecialchars();
  • As seguintes palavras-chave são agora reserved, e não podem ser usados como nomes de funções, classes, etc: trait - callable - insteadof.


As seguintes funções foram removida do PHP:

define_syslog_variables();

import_request_variables();

session_is_registered(), session_register() and session_unregister();

mysqli_bind_param(), mysqli_bind_result(), mysqli_client_encoding();

mysqli_fetch(),mysqli_param_count(), mysqli_get_metadata(), mysqli_send_long_data();

mysqli::client_encoding() and mysqli_stmt::stmt().

Novos Recursos

  • Suporte para Traits foi adicionado;
  • Adicionado sintexe de Matriz curta, ex.: $a = [1, 2, 3, 4]; or $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];
  • Função array dereferencing, ex.: foo()[0];
  • Agora é possível utilizar short_open_tag (<?) independente da configuração do php.ini;
  • Acesso a classe de membros na instanciação, ex.: (new Foo)->bar();
  • A sintaxe Class::{expr}() agora é suportada;
  • Formato de números binários foi adicionado, ex.: 0b001001101;
  • Melhorias nas mensagens de argumentos incompatíveis e mensagens de erros;
  • A extensão sessions pode agora acompanhar o progresso de upload de arquivos.