Desestruturação de array PHP

Resumo : neste tutorial, você aprenderá como usar a desestruturação de array PHP para atribuir elementos de um array a múltiplas variáveis.

Introdução à desestruturação de array PHP

Suponha que você tenha um array retornado por uma função parse_url():

<?php

$urls = parse_url('https://tutorials.acervolima.com/');
var_dump($urls);Linguagem de código:  PHP  ( php )

Saída:

array(3) {
    ["scheme"]=>  string(5) "https"
    ["host"]=> string(19) "tutorials.acervolima.com"
    ["path"]=> string(1) "/"
}Linguagem de código:  PHP  ( php )

Para atribuir os elementos do array a múltiplas variáveis, você pode usar a list()construção assim:

<?php

list('scheme' => $scheme,
    'host' => $host,
    'path'=>$path
) = parse_url('https://tutorials.acervolima.com/');

var_dump($scheme, $host, $path);Linguagem de código:  PHP  ( php )

Saída:

string(5) "https"
string(19) "tutorials.acervolima.com"
string(1) "/"Linguagem de código:  PHP  ( php )

O PHP 7.1 introduziu uma nova maneira de descompactar os elementos do array em variáveis. É chamado de desestruturação de array:

<?php

[
    'scheme' => $scheme,
    'host' => $host,
    'path'=>$path
] = parse_url('https://tutorials.acervolima.com/');

var_dump($scheme, $host, $path);Linguagem de código:  PHP  ( php )

Saída:

string(5) "https"
string(19) "tutorials.acervolima.com"
string(1) "/"Linguagem de código:  PHP  ( php )

Assim como o list(), a desestruturação de array funciona tanto com arrays indexados quanto com arrays associativos . Por exemplo:

<?php

$person = ['John','Doe'];
[$first_name, $last_name] = $person;

var_dump($first_name, $last_name);Linguagem de código:  PHP  ( php )

Saída:

string(4) "John"
string(3) "Doe"Linguagem de código:  PHP  ( php )

Ignorando elementos

A sintaxe de desestruturação de array também permite pular qualquer elemento. Por exemplo, o seguinte ignora o segundo elemento da matriz:

<?php

$person = ['John','Doe', 24];
[$first_name, , $age] = $person;

var_dump($first_name, $age);Linguagem de código:  PHP  ( php )

Saída:

string(4) "John"
int(24)Linguagem de código:  PHP  ( php )

Exemplos de desestruturação de array PHP

Vejamos alguns exemplos de uso da sintaxe de desestruturação de array do PHP.

1) Trocando variáveis

Para trocar os valores de duas variáveis, você costuma usar uma variável temporária como esta:

<?php

$x = 10;
$y = 20;

// swap variables
$tmp = $x;
$x = $y;
$y = $tmp;

var_dump($x, $y);Linguagem de código:  PHP  ( php )

Agora, você pode usar a sintaxe de desestruturação de array para tornar o código mais curto:

<?php

$x = 10;
$y = 20;

// swap variables
[$x, $y] = [$y, $x];

var_dump($x, $y);Linguagem de código:  PHP  ( php )

2) Analisando um array retornado de uma função

Muitas funções em PHP retornam um array. A desestruturação de array permite analisar um array retornado de uma função.

Por exemplo:

<?php

[
    'dirname' => $dirname,
    'basename' => $basename
] = pathinfo('c:\temp\readme.txt');


var_dump($dirname, $basename);Linguagem de código:  PHP  ( php )

Saída:

string(7) "c:\temp"
string(10) "readme.txt"Linguagem de código:  PHP  ( php )

Resumo

  • Use a desestruturação de array PHP para descompactar elementos de um array em variáveis.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *