Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Omar~

Otimizando o código

Recommended Posts

Então qual seria a melhor solução para esse código que retorna uma array multi para acessar como array normal?

Vou mostrar o código depois explico

Método da classe:

public static function userData($userID) {
    $select = new Select();
    $select->selectQuery("users_login", "client_hash = :dbuser", "dbuser={$userID}");
    if ($select->selectCount()) {
        return self::$data = $select->selectResult();
    }
}

A classe Select é minha classe PDO que faz leituras no banco de dados, e retorna os dados em array. E como pode-se perceber estou buscando dados de um usuário especifico para ter todos dados da tabela.

E retorno fica assim pela depuração: var_dump(SystemUser::userData('7665162471515633918'));

Spoiler

array(1) {
  [0]=>
  object(stdClass)#20 (14) {
    ["number_id"]=>
    string(2) "16"
    ["client_hash"]=>
    string(19) "7665162471515633918"
    ["pass"]=>
    string(44) "YWNjNjI0ZjI4MWVmMDNiZWQwZDg5NWY3NjI0ZmY1NTg="
    ["mail"]=>
    string(17) "fulano@fulano.com"
    ["group_by"]=>
    string(1) "0"
    ["join_date"]=>
    string(10) "2018-01-10"
    ["last_ip"]=>
    string(9) "127.0.0.1"
    ["warn_lv"]=>
    string(1) "0"
    ["ban_date"]=>
    string(10) "2018-01-01"
    ["ban_reason"]=>
    string(0) ""
    ["name"]=>
    string(6) "fulano"
    ["birthdate"]=>
    NULL
    ["gender"]=>
    string(1) "S"
    ["fame"]=>
    string(1) "0"
  }
}

 

 

Muito bem então posso pegar/ver qualquer dado dessa array assim basta que eu passe alguma coisa como parâmetro para a classe de seleção faça a busca:

echo (SystemUser::userData('7665162471515633918')[0]->name);

 

Só que aí que está, fica meio estranho passar o índice da zero da array pois ela mesmo só tem esse índice, teria alguma forma e converter essa array multi em single?

Exemplo para acessar: echo (SytemUser::userData('7665162471515633918')->name);

 

Motivo: É porque sempre tenho que instanciar a classe de busca executar foreach definir os valores só então acessar os dados,  assim sendo criando um método que já faça isso uma vez que esses dados de usuário vão ser constantemente acessados.

Obs.: no fetchmode da classe PDO usei FETCH_OBJ, é só para informar porque os resultados vem em stdClass

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.