Fork me on GitHub

Grupo de desenvolvedores de PHP do estado de São Paulo
Próximos encontros e eventos? Visite a página do PHPSP no Meetup

O que o PHP7 vai quebrar #3

Por em em Artigos

Introdução

O famigerado PHP7 esta quase chegando, data prevista de lançamento é dia 12/11/2015. Muitas novidades, promessas de melhorias de até 50% na performance, mais seguro e melhor preparado para os desafios dos próximos 20 anos.
Expectativas de melhora a parte, o que vai mudar, sair ou quebrar na “userland“? Como se preparar? É disso que vou falar nessa série de artigos.

Outros artigos dessa série:
1. Mudanças na ordem de parseamento de nome de variáveis, propriedades e referência a métodos indiretos
2. Mudanças na interpretação de expressões e variáveis resultado de funções por referência como parâmetros de funções

o_que_o_php7_vai_quebrar2

3. Mudanças na ordem em que elementos de array e propriedades de objetos quando criados por referência

3.1. O que é?

Quando manipulamos arrays ou propriedades de objetos usando referência a ordem em que os elementos ficam no array e as propriedades nos objetos.

3.2. Como é?

Até a versão 5.x:

Ou seja, apesar de ser “declarado” antes, o índice ‘a’ aparecia depois já que seu valor dependeria do valor contido no índice ‘b’.

3.3. Como vai ser?

Independentemente da origem do valor, no PHP7, a ordem será mantida conforme a declaração então teremos o seguinte resultado:

Apesar do uso de ‘a’ e ‘b’, note que a ordem é por precedência de declaração e não ordem alfabética.

3.4. Como se preparar para a mudança?

Não colocar todas as suas fichas na certeza de que a ordem dos items num array ou das propriedades em um objeto são imutáveis. Se precisa acessar o conteúdo de uma variável em um array use o índice e não a posição, o mesmo para as propriedades em um objeto.

3.5. Implicações?

Não existem muita implicações práticas nessa mudança, é uma questão de padronização já que o esperado já era o comportamento que será padrão no PHP7 e não o que vinha acontecendo. Outro caso de boas práticas (uso dos índices e não da ordem) que será agora faz parte da base da linguagem.

Para mais detalhes e maiores informações técnicas, consulte a RFC dessa mudança.

Até mais!

Tags:

Sobre João Paulo

Santista roxo. Assistente de Sobrinho Jr. metido a CIO, CTO e a coisa toda. Sabe de nada mas acha que entende de alguma coisa. Fã e entusiasta de futebol, código aberto, PHP e elePHPants.

Mais posts de .