PHP - array de clases

   
Vista:

array de clases

Publicado por Fito (1 intervención) el 30/04/2008 22:57:19
hola,

quiero saber si es posible crear un array de clases en php:

Es valido hacer esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class miclase{
 
var $codigo;
var $nombre;
var $ telefono;
 
}
 
$usr= new struct;
 
$usr->$codigo="lo que sea";
$usr->$nombre="lo que sea";
$usr->$telefono="lo que sea";
$vector[] = $usr;
 
for($i=0;$i<count($vector);i++)
{
      echo "$vector[i]->$codigo";
      echo   "$vector[i]->$nombre";
       echo  "$vector[i]->$ telefono";
 
}

//Por favor ayuda!!!!
//Necesito almacenar cada registro que leo de una base de datos en un arreglo, algo parecido a los structs de C/C++
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:array de clases

Publicado por Omar Yépez (224 intervenciones) el 30/04/2008 23:44:54
Hola Fito mnmn{@}hj{.}net

Si la pregunta es que si puedes guardar objetos o clases en arreglos si lo puedes hacer.

Puedes hacerlos de esta manera
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
class MiClase{
var $algo;
var $otra_cosa;
 
    function getAlgo(){
        return $this->algo;
    }
 
    function getOtraCosa(){
        return $this->otra_cosa;
    }
 
    function setAlgo($algo){
       $this->algo = $algo;
    }
 
    function setOtraCosa($otra_cosa){
        $this->otra_cosa = $otra_cosa;
    }
}
 
//Para agregarlo seria
 
$miVector;
/* $miVector es el arreglo. en PHP no hay necesidad de declararlo como array.
*/
for($i=0;$i<3;$i++){
	$clase = new MiClase();
	$clase->setAlgo('algo Objeto ' . $i);
	$clase->setOtraCosa('otra cosa Objeto ' . $i);
	$miVector[$i] = $clase;
}
 
//Para acceder a el objeto seria
for($i=0;$i<sizeof($miVector);$i++){
	$buscarClase = $miVector[$i];
	echo '--------------Objeto ' . $i . '---------------<br />';
	echo $buscarClase->getAlgo();
	echo ' ';
	echo $buscarClase->getOtraCosa();
	echo '<br />';
 
}
 
?>
/*
Si necesitas por alguna razon guardar el arreglo de objetos en sesion debes serializar cada objeto antes de agregarlo al arreglo y desearilizar al consultarlo
*/

Espero haberte ayudado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ok!

Publicado por Fito (1 intervención) el 02/05/2008 04:39:34
OK!!
Gracias tu información ha sido de gran ayuda!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:array de clases

Publicado por Alejandro alejandro.garcia@ciencias-exactas.hol.es (1 intervención) el 10/08/2015 18:13:59
Quiero agradecerte la explicación que diste me ayudó a resolver un problema que tenia y lo voy a comentar por si a alguien le puede servir también tenia el siguiente código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
include("lib/lib.php");
 //function cargardatos1(){
 
$seccionA[ ] = new pregunta();
$conexion = mysql_connect("host---","user---","pass---");
mysql_select_db("assessment",$conexion);
$consulta="SELECT * FROM preguntas1 ";
$resultado = mysql_query($consulta,$conexion);
 
if($resultado === FALSE)
    die(mysql_error()); // 
 
 
    if ($row = mysql_fetch_array($resultado)){
 
 
$i=0;
   do {
	 echo $i."\n";
	 $Id = $row['ID'];$tema=$row['tema'];$instrucciones1=" ";$instrucciones2=$row['instruccion'];
	 $pregunta1=$row['pregunta1'];$pregunta2=$row['pregunta2'];$pregunta3=$row['pregunta3'];$pregunta4=$row['pregunta4'];
	 $pregunta5=$row['pregunta5'];$pregunta6=$row['pregunta6'];$pregunta7=$row['pregunta7'];$pregunta8=$row['pregunta8'];
	 $respuesta1=$row['respuesta1'];$respuesta2=$row['respuesta2'];$respuesta3=$row['respuesta3'];$respuesta4=$row['respuesta4'];
	 $respuesta5=$row['respuesta5'];
 
   // echo $Id." ".$tema." ".$instrucciones2." ".$pregunta1." ".$pregunta2."/n" ;
   // echo $respuesta1." ".$respuesta2." ".$respuesta3."\n";	 
 
    $seccionA[$i]->setId($Id);
    $seccionA[$i]->setTema($tema);
    $seccionA[$i]->setInstrucciones1($instrucciones1);
    $seccionA[$i]->setpreguntas($pregunta1,0);
    $seccionA[$i]->setpreguntas($pregunta2,1);
    $seccionA[$i]->setpreguntas($pregunta3,2);
    $seccionA[$i]->setpreguntas($pregunta4,3);
    $seccionA[$i]->setpreguntas($pregunta5,4);
    $seccionA[$i]->setpreguntas($pregunta6,5);
    $seccionA[$i]->setpreguntas($pregunta7,6);
    $seccionA[$i]->setpreguntas($pregunta8,7);
    $seccionA[$i]->setInstrucciones2($instrucciones2);
    $seccionA[$i]->setrespuestas($respuesta1,0);
    $seccionA[$i]->setrespuestas($respuesta2,1);
    $seccionA[$i]->setrespuestas($respuesta3,2);
    $seccionA[$i]->setrespuestas($respuesta4,3);
    $seccionA[$i]->setrespuestas($respuesta5,4);
 
    $i=$i+1;
 
    } while ($row = mysql_fetch_array($resultado));
 
 
mysql_free_result($resultado);
mysql_close($conexion);
 
                                       }
 
 
 
else {
echo "¡ No se ha encontrado ningún registro !";
}
 
 // return $seccionA;  
 
 
                                                        //   }  


me tiraba un error pero al seguir tu consejo de crear una variable,
e igualar al final de la consulta y carga de datos a esa variable como array se solucionó automáticamente el problema. saludos y muchas gracias....
agregó la rutina corregida.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
include("lib/lib.php");
 //function cargardatos1(){
$mivector;
$seccionA = new pregunta();
$conexion = mysql_connect("host--","ur","basedonnees");
mysql_select_db("assessment",$conexion);
$consulta="SELECT * FROM preguntas1 ";
$resultado = mysql_query($consulta,$conexion);
 
if($resultado === FALSE)
    die(mysql_error()); // 
 
 
    if ($row = mysql_fetch_array($resultado)){
 
 
$i=0;
   do {
	 echo $i."\n";
	 $Id = $row['ID'];$tema=$row['tema'];$instrucciones1=" ";$instrucciones2=$row['instruccion'];
	 $pregunta1=$row['pregunta1'];$pregunta2=$row['pregunta2'];$pregunta3=$row['pregunta3'];$pregunta4=$row['pregunta4'];
	 $pregunta5=$row['pregunta5'];$pregunta6=$row['pregunta6'];$pregunta7=$row['pregunta7'];$pregunta8=$row['pregunta8'];
	 $respuesta1=$row['respuesta1'];$respuesta2=$row['respuesta2'];$respuesta3=$row['respuesta3'];$respuesta4=$row['respuesta4'];
	 $respuesta5=$row['respuesta5'];
 
   // echo $Id." ".$tema." ".$instrucciones2." ".$pregunta1." ".$pregunta2."/n" ;
   // echo $respuesta1." ".$respuesta2." ".$respuesta3."\n";	 
 
 
    $seccionA->setId($Id);
    $seccionA->setTema($tema);
    $seccionA->setInstrucciones1($instrucciones1);
    $seccionA->setpreguntas($pregunta1,0);
    $seccionA->setpreguntas($pregunta2,1);
    $seccionA->setpreguntas($pregunta3,2);
    $seccionA->setpreguntas($pregunta4,3);
    $seccionA->setpreguntas($pregunta5,4);
    $seccionA->setpreguntas($pregunta6,5);
    $seccionA->setpreguntas($pregunta7,6);
    $seccionA->setpreguntas($pregunta8,7);
    $seccionA->setInstrucciones2($instrucciones2);
    $seccionA->setrespuestas($respuesta1,0);
    $seccionA->setrespuestas($respuesta2,1);
    $seccionA->setrespuestas($respuesta3,2);
    $seccionA->setrespuestas($respuesta4,3);
    $seccionA->setrespuestas($respuesta5,4);
    $mivector[$i]=$seccionA;
 
 
    $i=$i+1;
 
    } while ($row = mysql_fetch_array($resultado));
 
 
mysql_free_result($resultado);
mysql_close($conexion);
 
                                       }
 
 
 
else {
echo "¡ No se ha encontrado ningún registro !";
}
 
 // return $seccionA;  
 
 
                                                        //   }  
 var_dump($mivector);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar