Como é chamado esse procedimento de acessar elementos do array?
Bem, eu estava com uma idéias para poder acessar valores do array de maneira diferente (Especialmente o $_POST do PHP), para não ter que ficar escrevendo "['tal']['outrotal']" toda hora!
Eu vi que no Cakephp e no Laravel é utilizado uma "string separada por pontinhos" (que eu chamei de token, sem saber se é isso mesmo) que pode ser usado para acessar o array de acordo com o índice.
por exemplo, no laravel:
Input::file('arquivo.name');
// isso é o mesmo que $_FILES['arquivo']['name'];
Outra coisa é que eu queria suas opniões para saber qual das duas funções abaixo se encaixam melhor para eu poder realizar isso ( no caso eu fiz na mão :) ):
<?php
$_POST = [
'pessoa' => ['nome' => 'wallace', 'idade' => '23']
];
function post($token)
{
$keys = explode('.', $token);
$evaluate = "['" . implode("']['", $keys) . "']";
eval("\$return = (isset(\$_POST$evaluate)) ?\$_POST$evaluate:false;");
return $return;
}
function post2($token)
{
$keys = explode('.',$token);
$return = array();
foreach($keys as $tmp){
if(isset($_POST[$tmp]) && is_array($_POST))
{
$return = $_POST[$tmp];
}
elseif(isset($return[$tmp]) && is_array($return))
{
$return = $return[$tmp];
}
else{
$return = false;
break;
}
}
return $return;
}
var_dump(post('pessoa.nome'));
//string(7) "wallace". Esse retorna array e, se for passado pessoa.nome.1, retorna 'w'
var_dump(post2('pessoa.nome'));
//string(7) "wallace". Esse sempre acessa apenas os elementos do array
Então aqui vão as perguntas:
- Como é que é chamado esse procedimento? Pesquisei no Google e não consegui encontrar nada (já que não sei como se chama o procedimento)
- Das duas funções acima, qual ficou melhor? Se nenhuma das duas, aceito sugestões de código :)
Desde já, agradeço!
Discussão (4)
Carregando comentários...