Tienes varios problemas uno es que no inicias la propiedad productos como arreglo y luego intentas hacer esto:
Código PHP:
Ver originalfunction agregar_productos($nombre, $precio)
{
$this->productos('Coca Cola'=>'1,5', 'Café'=>'2', 'Agua Mineral'=>'0,75', 'Cerveza'=>'1,25');
}
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 originalpublic function __construct()
{
$this->productos = array( 'Coca Cola'=>'1,5',
'Café'=>'2',
'Agua Mineral'=>'0,75',
'Cerveza'=>'1,25',
);
echo 'Objeto creado';
}
Lo siguiente es que corrijas el método que agrega nuevos productos de la siguiente forma
Código PHP:
Ver originalpublic function agregar_producto($nombre, $precio)
{
$this->productos[$nombre] = $precio;
}
Por ultimo esta parte no es correcta:
Código PHP:
Ver original<?php
foreach ($productos as $key=>$value)
{
?>
productos es una propiedad publica asi que debes de accederla desde el objeto y no como una variable.
Código PHP:
Ver original$prod1 = new clase_prod;
$prod1->agregar_productos("Limonada", "1");
foreach ($prod1->productos as $key=>$value)
{