Converter Arrays em Objetos no PHP

Bom dia,

Em alguns momentos precisamos manipular arrays simples. Algumas vezes ficar “passeando” pelas posições corretas dos arrays pode ser chata e desnecessária. Quando temos uma página carregada por POST por exemplo, costumanos escrever códigos de SQL, validações lendo os dados da seguinte forma:

[php]
$nome = $_POST[‘nome’];
// ou
if ($_POST[‘nome’] != ” || isset($_POST[‘nome’]) { // façamos algumas coisas.
// garantindo a segurança.
$nome = addslashes($_POST[‘nome’]);
//….
[/php]

Seria melhor de um outro jeito, para esses casos não é necessário trabalhar com posições de arrays, poderiamos trabalhar com notação de objeto da classe stdClass diretamente. Para isso podemos fazer da seguinte forma.

[php]
function get_post_object ()
{
if(!sizeof($_POST))
{
return null;
}
else
{
$object = new stdClass();

foreach ($_POST as $field => $value)
{
$object->$field = addslashes($value);
}
return $object;
}
}
[/php]

Muito trabalhoso ainda, podemos simplificar mais. O PHP permite fazer um casting direto de um array normal em um objeto do tipo stdClass, para fazer isso fazemos o seguinte:

[php]
$object_post = (object) $_POST;
$object_get  = (object) $_GET;

$array       = array(“id_usuario” => 123, “login” => “tio_joao”, “senha” => “caneta”);
$usuario     = (object) $array;
// a partir de agora
$object_post->nome …..$usuario->login
[/php]

Trabalhar diretamente com objetos stdClass nos fazem ganhar um bom tempo escrevendo alguns scripts genéricos, como para SQL, validações, etc.

Espero que tenha sido útil, um forte abraço e até a próxima.