Analise o trecho de código a seguir escrito na linguagem PHP...

Próximas questões
Com base no mesmo assunto
Q4232600 Programação
Analise o trecho de código a seguir escrito na linguagem PHP sobre o Operador de União de arrays (+):
$array1 = [1, 2]; $array2 = [3, 4, 5]; $array3 = $array1 + $array2; echo json_encode($array3);

Qual será a saída após a execução?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: B

Fundamento decisivo: A decisão dependia de aplicar a união de arrays pelo operador + em PHP, considerando as chaves automáticas dos arrays literais.

Tema central: União de arrays PHP
Análise das alternativas
A
Errada
Está errada porque inclui o valor 3 do segundo array, mas esse valor está na chave 0, que já existe em $array1. Na união com +, chave repetida da direita é ignorada.
B
Certa
Em PHP, o operador + entre arrays faz união por chave. No caso, $array1 = [1,2] corresponde às chaves 0=>1 e 1=>2, enquanto $array2 = [3,4,5] corresponde a 0=>3, 1=>4 e 2=>5. Ao calcular $array1 + $array2, permanecem os pares da esquerda nas chaves já existentes, e só é incorporado da direita o par cuja chave ainda não apareceu. Por isso, as chaves 0 e 1 de $array2 são descartadas, entra apenas 2=>5, e o resultado final é [1,2,5].
C
Errada
Está errada porque trata a operação como soma ou combinação aritmética entre elementos dos arrays. O operador + em arrays PHP não soma elemento a elemento; ele faz união por chave.
D
Errada
Está errada porque pressupõe concatenação integral dos dois arrays. Isso não ocorre aqui, pois os elementos de $array2 nas chaves 0 e 1 não entram no resultado por já existirem no array da esquerda.
E
Errada
Está errada porque supõe reindexação e preservação integral dos dois arrays, com criação de índice adicional. O operador + não reindexa nem cria posição intermediária para acomodar todos os valores; ele apenas adiciona chaves novas da direita.
Pegadinha da questão
A confusão real era julgar o resultado pelos valores ou como concatenação, quando o operador + em arrays PHP decide tudo pelas chaves e preserva o array da esquerda nas chaves repetidas.
Dica para questões semelhantes
  • Ao ver array1 + array2 em PHP, verifique primeiro as chaves, não os valores.
  • Se a mesma chave existir nos dois arrays, prevalece o par do array da esquerda e o da direita é ignorado.
  • Em arrays literais como [1,2] e [3,4,5], considere as chaves automáticas começando em 0 antes de prever a saída.
  • Depois de formar o array final, só então avalie como o json_encode o exibirá.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo