convertir objeto en array, para que sería útil?

Iniciado por jhonatanAsm, 10 Febrero 2012, 02:09 AM

0 Miembros y 1 Visitante están viendo este tema.

jhonatanAsm

hola, no entiendo por qué en el sgte code, crea un objeto, y ni bien crea el objeto, lo convierte en array. ¿ por qué no crear directamente el array? muchas gracias de antemano.

la funcion:

function invocar_modelo($modelo)
{
       if($modelo)
       {
             require_once('models.php');
             $data = new $modelo();// CREA EL OBJETO, E INMEDIATAMENTE LO CONVIERTE
             settype($data, 'array');//  EN ARRAY ? por qué hacerlo de esa manera?.salu2
             return $data;
       }
}
mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.

jhonatanAsm

mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.

Shell Root

A ver, supongo que estan en lo que es Modelo-Vista-Controlador, entonces para pasar los datos a la vista usan el array.

No se que hay en el archivo models.php?
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

jhonatanAsm

sorry,no me explique bien.

lo que pregunto es: ¿ con qué intención uno crea un objeto para luego convertirlo en un array? así como en el code:


$data = new Modelo();// CREA EL OBJETO, E INMEDIATAMENTE LO
             settype($data, 'array');//  CONVIERTE EN ARRAY


por ejemplo, si uno mira una línea de código así:

$asdf++;

sabe que eso es un contador, que llevará las cuentas de cierto proceso o algo así.

haber si me puedes dar otra manito, jeje.  te agradezco mucho la ayuda brindada. gracias!
mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.

Shell Root

Bueno, ahora dime que código tiene models.php.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

jhonatanAsm

#5
el archivo models.php contiene:


<?php
class ModeloUno
{
var $propiedad=22;
...
}

class 
ModeloDos
{
var $propiedad_1=44;
var $propiedad_2=55;
...
}
?>



mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.

Shell Root

#6
Bueno no soy un experto en esto de PHP, pero tengo mis bases, lo entiendo como...

Primero se tiene una función invocar_modelo que tiene como parámetro la variable $modelo, en esta variable va a ir el nombre de la clase que se quiere instanciar (En este caso, sería... ModeloUno o ModeloDos).

Código (php) [Seleccionar]
$data = new $modelo();
La variable $data se crea y se convirtiete en un objeto del tipo $modelo (Variable parámetro con el nombre de la clase).

Código (php) [Seleccionar]
settype($data, 'array');
Convierte el resultado obtenido de la instancia de la clase en un array, dado que la clase ModeloDos tiene 2 variables,
Código (php,2,3) [Seleccionar]
class ModeloDos{
 var $propiedad_1=44;
 var $propiedad_2=55;
}


Al convertirlas en array quedaría,
Código (bash) [Seleccionar]
Array ( [propiedad_1] => 44 [propiedad_2] => 55 )


----
Soy muy malo explicando, pero con esto creo que puedes entender lo que se realiza.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

jhonatanAsm

mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.