Ver Mensaje Individual
  #5 (permalink)  
Antiguo 05/04/2015, 16:37
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Problema clases con constructor/destructor

Tienes varios problemas uno es que no inicias la propiedad productos como arreglo y luego intentas hacer esto:
Código PHP:
Ver original
  1. function agregar_productos($nombre, $precio)
  2.  
  3. {
  4.  
  5.     $this->productos('Coca Cola'=>'1,5', 'Café'=>'2', 'Agua Mineral'=>'0,75', 'Cerveza'=>'1,25');
  6.  
  7. }
Php no sabe que quieres hacer con eso, ya que tu propiedad productos no es ni un arreglo, ni tampoco una función. Por el código que tienes, supongo que quieres crear un objeto Clase_prod que ya contenga algunos productos y luego ir insertando nuevos, esto lo puedes hacer desde el constructor o desde la declaración de las propiedades, yo lo haré desde el constructor.
Código PHP:
Ver original
  1. public function __construct()
  2.     {
  3.         $this->productos = array(
  4.             'Coca Cola'=>'1,5',
  5.             'Café'=>'2',
  6.             'Agua Mineral'=>'0,75',
  7.             'Cerveza'=>'1,25',
  8.         );
  9.  
  10.         echo 'Objeto creado';
  11.     }
Lo siguiente es que corrijas el método que agrega nuevos productos de la siguiente forma
Código PHP:
Ver original
  1. public function agregar_producto($nombre, $precio)
  2.     {
  3.         $this->productos[$nombre] = $precio;
  4.     }

Por ultimo esta parte no es correcta:
Código PHP:
Ver original
  1. <?php
  2.         foreach ($productos as $key=>$value)
  3.         {
  4.     ?>
productos es una propiedad publica asi que debes de accederla desde el objeto y no como una variable.
Código PHP:
Ver original
  1. $prod1 = new clase_prod;
  2.  
  3. $prod1->agregar_productos("Limonada", "1");
  4.  
  5. foreach ($prod1->productos as $key=>$value)
  6.         {
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.