Extraindo variáveis a partir de arrays com a função extract()
O PHP é uma linguagem muito bem elaborada, além da qualidade que todos conhecemos ele dispõe de muitos recursos que auxiliam muito a vida do programador, extract() é um deles.
Imagine a seguinte situação:
É exatamente nesse ponto que o extract() mostra a que veio. Veja:
Melhorou bastante, não é mesmo? Mas não pára por aí. Esta função aceita mais dois parâmetros que podem ajudar muito. Veremos mais detalhes na próxima página.
Imagine a seguinte situação:
<?php $sql = "SELECT * FROM noticias"; $resultado = mysql_query($sql); while ($linha = mysql_fetch_array($resultado)){ // para facilitar nossa vida mais adiante é claro // que vamos querer colocar os valores retornados // em variáveis simples: $id = $linha['id']; $data = $linha['data']; $cat = $linha['cat']; $fonte = $linha['fonte']; $titulo = $linha['titulo']; $status = $linha['status']; $sumario = $linha['sumario']; echo $titulo; echo $sumario; // ... } ?>
É exatamente nesse ponto que o extract() mostra a que veio. Veja:
<?php $sql = "SELECT * FROM noticias"; $resultado = mysql_query($sql); while ($linha = mysql_fetch_array($resultado)){ ectract($linha); echo $titulo; echo $sumario; // ... } ?>
Melhorou bastante, não é mesmo? Mas não pára por aí. Esta função aceita mais dois parâmetros que podem ajudar muito. Veremos mais detalhes na próxima página.
Páginas:
1
2
Puxa vida... vc me fez economizar umas 50 linhas de cod. Vlw mesmo cara !
21/09/2010 4:43pm
(~14 anos atrás)
Muito bom Edson, apenas uma coisa com relação ao seu último comentário.. Para esta função funcionar com arrays de índices numéricos basta adicionar um prefixo com os parâmetros da própria função.. ex:
<?php
$a = array(1 => 'a', 2 => 'b', 3 => 'c');
extract($a, EXTR_PREFIX_ALL, 'n');
echo $n_1, $n_2, $n_3; // Imprime abc
?>
O fato de utilizar a função para este tipo de índice sem o prefixo não é permitido pois no PHP não são permitidas variáveis que se iniciam com número... adicione o prefixo e pronto!
Abraços!
<?php
$a = array(1 => 'a', 2 => 'b', 3 => 'c');
extract($a, EXTR_PREFIX_ALL, 'n');
echo $n_1, $n_2, $n_3; // Imprime abc
?>
O fato de utilizar a função para este tipo de índice sem o prefixo não é permitido pois no PHP não são permitidas variáveis que se iniciam com número... adicione o prefixo e pronto!
Abraços!
26/07/2007 4:35am
(~17 anos atrás)
O Anderson falou tudo... simples e pratico.. mas que muita gente não conhece..
Abraços!
Abraços!
16/07/2007 10:50am
(~17 anos atrás)