PHP 5.4.36 Released

Mudanças incompatíveis com versões anteriores

Embora a moir parte do código PHP 5 existente deva funcionar sem nenhuma alteração, por favor esteja ciente de que existem algumas mudanças incompatíveis:

  • A nova API interna de compilação de parametro foi aplicada em todas as extensões embarcadas com o PHP 5.3.x. Esta API de compilação de parametro faz com que as funções retornem NULL quando parametros incompatíveis são enviados. Existem algumas exceções a esta regra, como a função get_class(), que continua retornando FALSE para errors.
  • clearstatcache() não limpa mais o cache do realpath por padão.
  • realpath() agora é totalmente indepentende da plataforma. A consequência disto é que caminhos relativos inválidos como __FILE__ . "/../x" não vão mais funcionar.
  • A família de funções do call_user_func() agora propagam $this mesmo que o invocador seja uma classe pai.
  • As funções para array natsort(), natcasesort(), usort(), uasort(), uksort(), array_flip(), e array_unique() não aceitam mais objetos enviados como argumentos. Para continuar enviando objetos, primeiro converta o objeto para um array.
  • O comportamento de funções com parametros por referência mas chamadas pelo valor mudou. Onde antes a função aceitaria um argumento pelo valor, um erro falta é emitido. Qualquer código anterior passando constantes ou literais para funções esperando referências, devem ser alterados para associar o valor a uma variável antes de chamar a função.
  • A nova biblioteca do mysqlnd precisa precisa do novo formato de senhas do MySQL 4.1 com 41 bytes. O uso do antigo formato de 16 bytes faz com que o mysql_connect() e funções similares emitam o erro: "mysqlnd cannot connect to MySQL 4.1+ using old authentication."
  • A nova biblioteca do mysqlnd não lê os arquivos de configurações do mysql (my.cnf/my.ini), como a antiga biblioteca faz. Se seu código confia nas configurações contidas no arquivo de configuração, você pode ler explicitamente com a função mysqli_options(). Perceba que isso significa que as constantes específicas do PDO PDO::MYSQL_ATTR_READ_DEFAULT_FILE e PDO::MYSQL_ATTR_READ_DEFAULT_GROUP não serão definidas se o suporte ao MySQL no PDO for compilado com o mysqlnd.
  • A / no final foi removida da classe SplFileInfo e outras classes de diretórios relacionados.
  • O método mágico __toString() não mais aceita argumentos.
  • Os métodos mágicos __get(), __set(), __isset(), __unset(), e __call() devem sempre ser declarados como public e não podem mais ser static. As assinaturas de método agora são obrigatórias.
  • O método mágico __call() agora é invocado no acesso de métodos private e protected.
  • func_get_arg(), func_get_args() e func_num_args() não podem mais ser chamadas do escopo mais alto de um arquivo que foi incluído pela função include ou require de dentro da função no arquivo que fez a chamada.
  • Uma camada de emulação para a extensão MHASH para encapsular a extensão Hash foi adicionada. Entretando nem todos os algorítimos foram cobertos, notavelmente o algorítimo de hash s2k. Isso significa que o s2k não está mais disponível no PHP 5.3.0.

As seguintes palavras chaves agora estão reservadas e não podem ser utilizadas em funções, classes, nomes e etc.

add a note add a note

User Contributed Notes 2 notes

up
5
Chris Bolt
5 years ago
call_user_func_array() no longer accepts null as a second parameter and calls the function. It now emits a warning and does not call the function.
up
-4
munaw at munaw dot com
4 years ago
gd_info():
    Note:
    Previous to PHP 5.3.0, the JPEG Support attribute was named JPG Support.

Be aware of this, in case you verify GD image support by this attribute!
To Top