Extraindo variaveis de arrays
Details
- Details
- Category: PHP
- Published on Sunday, 24 July 2011 23:39
- Written by Bruno Vinícius Camacho
- Hits: 396
Fala pessoal.
Este artigo fala da função extract(), a qual pode ajudar muito a vida do programador.
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:
Vamos agora analisar a função. Começaremos pela sintaxe, que é:
array: “Sua variavel array”.
extract_type: “O modo como a variável criada será tratada”.
prefix: “Conforme o parâmetro que você fornecer em “extract_type” você pode definir um prefixo que vai anteceder as novas variáveis criadas.
Veja abaixo os parâmetros aceitos em ‘extract_type’:
EXTR_OVERWRITE
Se existir uma variável com o mesmo nome, sobrescreve a variável existente.
EXTR_SKIP
Se existir uma variável com o mesmo nome, não sobrescreve a variável existente.
EXTR_PREFIX_SAME
Se existir uma variável com o mesmo nome, adiciona um prefixo ao nome da variável definido pelo argumento prefix.
EXTR_PREFIX_ALL
Adiciona um prefixo ao nome de todas as variáveis definido por prefix.
EXTR_PREFIX_INVALID
Adiciona um prefixo definido por prefix apenas para variáveis como nomes inválidos ou numéricos.
EXTR_IF_EXISTS
Só sobrescreve a variável se ela já existe na tabela de símbolos corrente, caso contrário, não faz nada. Isso é útil quando se quer definir uma lista de variáveis válidas e então extrair só as que foram definidas em $_REQUEST, por exemplo. Essa opção foi adicionada no PHP 4.2.0.
EXTR_PREFIX_IF_EXISTS
Só cria nomes de variáveis usando o prefixo se na tabela de símbolos já existe uma variável com o nome sem esse prefixo. Essa opção foi adicionada no PHP 4.2.0.
EXTR_REFS
Extrai variáveis como referências, ou seja, os valores das variáveis importadas ainda estarão referenciando os valores do parâmetro var_array. Essa opção pode ser usada sozinha ou em conjunto com as outras usando o operador ‘ou’ em extract_type. Essa opação foi adicionada no PHP 4.3.0.
Vamos agora a um exemplo prático:
Agora vem o problema. E caso o array seja de índices numéricos? Nenhuma variável pode começar com número. Simples, como mostrado, podemos colocar prefixo nas variaveis que serão geradas, como o indice é numérico, vamos adicionar o prefixo a todas, da seguinte maneira:
O argumento EXTR_PREFIX_ALL fará com que todas as variáveis geradas tenham um prefixo, neste caso, a letra “p” será o prefixo.
Até a próxima.Webtutoriais:A1AF8646




