PHP - Error en array multidimensional

 
Vista:

Error en array multidimensional

Publicado por ApNow (1 intervención) el 19/07/2006 19:57:51
Hola,

Estoy intentando crear un array de array de la siguiente forma pero me da un error. El código es el siguiente:

class hijo2
{

var $nom_hijo2; // Objeto hijo;

// Constructor:
function hijo2()
{
$this->nom_hijo2 = "";
}
}

class hijo1
{
// Test array de arrays:
var $nom_hijo1;
var $obj_hijo1;
var $hijo2_cont; // Contador de hijo2.

// Constructor:
function raiz()
{
$this->nom_hijo1 = "";
$this->obj_hijo1 = array();
$this->hijo2_cont = 0;
}
}
class principal
{
var $nombre; // Nombre de la clase principal;
var $phijo1; // variable apuntador a hijo1.
var $hijo1_cont; // Contador de hijo1.

// Constructor:
function principal ()
{
$this->nombre = "";
$this->phijo1 = array();
$this->hijo1_cont = 0;

}

// Carga de datos general:
function Carga()
{
$this->nombre = "Test";

// Empezamos con los "hijos":
$this->phijo1[$this->hijo1_cont] = new hijo1();
$this->phijo1[$this->hijo1_cont]->nom_hijo1 = "HOLA SOY EL PRIMER HIJO";

// Empezamos con los "nietos";
$this->phijo1[$this->hijo1_cont]->obj_hijo1 = new hijo2();
$this->phijo1[$this->hijo1_cont]->obj_hijo1[0]->nom_hijo2 = "HOLA SOY JUAN";
$this->phijo1[$this->hijo1_cont]->obj_hijo1[1]->nom_hijo2 = "HOLA SOY PEDRO";

// Aumentar contador:
$this->hijo1_cont++;

// Otro ejemplo:
$this->phijo1[$this->hijo1_cont] = new hijo1();
$this->phijo1[$this->hijo1_cont]->nom_hijo1 = "HOLA SOY EL SEGUNDO HIJO";

$this->phijo1[$this->hijo1_cont]->obj_hijo1 = new hijo2();
$this->phijo1[$this->hijo1_cont]->obj_hijo1[0]->nom_hijo2 = "HOLA SOY ANA";
$this->phijo1[$this->hijo1_cont]->obj_hijo1[1]->nom_hijo2 = "HOLA SOY ISABEL";

$this->hijo1_cont++;

}

// Visualizar los datos por pantalla:
function Vis()
{
echo("Nombre Principal: ".$this->nombre."<br />");

for($i=0;$i<$this->hijo1_cont;$i++)
{

echo("Nombre Hijo 1: ".$this->phijo1[$i]->nom_hijo1."<br />");

}
}
}

?>

<html>
<head></head>
<body>
<?php
$ej = new principal();

$ej->Carga();

$ej->Vis();
?>
</body>
</html>


--------------------------------------------------

La salida por pantalla, en cambio, es la siguiente:

Warning: Cannot use a scalar value as an array in D:\Software\Web\xampp\htdocs\eb\temp\array_test.php on line 56

Warning: Cannot use a scalar value as an array in D:\Software\Web\xampp\htdocs\eb\temp\array_test.php on line 57

Warning: Cannot use a scalar value as an array in D:\Software\Web\xampp\htdocs\eb\temp\array_test.php on line 67

Warning: Cannot use a scalar value as an array in D:\Software\Web\xampp\htdocs\eb\temp\array_test.php on line 68
Nombre Principal: Test
Nombre Hijo 1: HOLA SOY EL PRIMER HIJO
Nombre Hijo 1: HOLA SOY EL SEGUNDO HIJO

He estado mirando por internet, pero no encuentro solución al problema. Alguna idea???

Gracias
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