PHP - Clases en PHP

 
Vista:
Imágen de perfil de Stefa
Val: 39
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Clases en PHP

Publicado por Stefa (19 intervenciones) el 22/01/2019 03:24:08
Hola a todos, soy nuevo en esto de PHP y estoy desarrollando un sistema donde necesito guardar elementos en un "Baul" o en un "Carro".

Tengo dos clases una llamada Baul y otra llamada Item.

Baul.php
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
<?php
 
class Baul {
private $objetos;
 
function __construct() {
	$this->objetos = array();
}
 
function agregar($elemento) {
	$this->objetos[] = $elemento;
 
/* aca ya probe de todas las formas....
array_push($objetos, $elemento);
$objetos[] = $elemento;
 etc....   */
 
}
 
function get() {
	return $this->objetos;
}
 
function toString() {
	echo 'EL STRING';
	foreach ($objetos as $valor) {
    		echo $valor;
	}
}
 
 
}
 
?>

Item.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
 
class Item {
private $codigo;
private $nombre;
 
 
function __construct($cod, $nom) {
	$this->codigo = $cod;
	$this->nombre = $nom;
}
 
function getCodigo() {
	return $this->codigo;
}
 
function getNombre() {
	return $this->nombre;
}
 
}
 
?>

El problema es que no se insertan los elementos dentro del array.
Este es mi codigo de test:

1
2
3
4
5
6
7
8
9
10
11
<?php
    require_once ("class/Baul.php");
    require_once ("class/Item.php");
 
    $item1 = new Item(12,'Item 1');
 
    $baul = new Baul();    // creo una nueva instancia de la clase Baul
    $baul->agregar($item1);        // agrego un elemento dentro del array
    $baul->toString();                  // muestro todos los elementos por pantalla
 
?>


Espero que me puedan ayudar!

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
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Clases en PHP

Publicado por xve (6935 intervenciones) el 22/01/2019 09:05:47
Hola Stefa, veo dos posible errores en tu código.

En la lInea 26 tienes puesto esto:
1
foreach ($objetos as $valor) {
y en la función no existe la variable $objetos, tendría que ser:
1
foreach ($this->objetos as $valor) {

Luego en la linea 27, haces referencia al objeto, el cual no se puede imprimir...
1
echo $valor;
tendrías que hacer referencia al método del objeto que quieres que muestre la información... por ejemplo:
1
echo $valor->getCodigo();

Creo que con esto te debería de funcionar...

Coméntanos, ok?
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
Imágen de perfil de Stefano
Val: 39
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Clases en PHP

Publicado por Stefano (19 intervenciones) el 22/01/2019 13:50:42
Gracias! funciona de maravillas... por lo que veo PHP es algo mas estricto con POO, en Java dentro de la misma clase se puede acceder a las variables de instancia y esa costumbre me estaba jugando en contra...

Necesito tu consejo, ¿que es mejor?
1. Implementar el Baul mediante una clase.
2. Implementarlo mediante session_id y guardar los registros en MySQL.

Para orientarte lo que necesito hacer es que la persona elija tal cantidad de productos y estos se vayan actualizando en una lista como si fuese un carro de compras.

Para mi creo que es mejor implementarlo con una clase ya que no necesito que estos productos cargados se guarden temporalmente y es innecesario hacer consultas MySQL (por logica supongo que acceder a un metodo es mas rapido).
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