Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

me pueden explicar este codigo php ->

Estas en el tema de me pueden explicar este codigo php -> en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hola a todos, tengo una consulta respecto a un tipo de codigo que he encontrado varias veces y no se si lo estoy entendiendo bien ...
  #1 (permalink)  
Antiguo 28/07/2006, 07:57
 
Fecha de Ingreso: octubre-2003
Mensajes: 139
Antigüedad: 20 años, 6 meses
Puntos: 0
me pueden explicar este codigo php ->

hola a todos, tengo una consulta respecto a un tipo de codigo que he encontrado varias veces y no se si lo estoy entendiendo bien por ejem:

<?php
$productos->despliegaArreglo($productos->getCategorias($productos->getTienda()),"<br>",$_SERVER["PHP_SELF"], "enlace", "categoria");
?>

yo no he programado de esta manera , pero que hace especificamente "->"
gracias por la ayuda
  #2 (permalink)  
Antiguo 28/07/2006, 08:33
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
El símbolo -> sirve para invocar un metodo o propiedad de un objeto. En este caso, se está llamando al metodo despliegaArreglo(), al metodo getCategorias(), y al metodo getTienda() del objeto $producto.
  #3 (permalink)  
Antiguo 28/07/2006, 09:17
 
Fecha de Ingreso: octubre-2003
Mensajes: 139
Antigüedad: 20 años, 6 meses
Puntos: 0
hola gracias , tu sabes como puedo transformar el siguiente codigo para que las cosas que se guarden dentro del arreglo sean obtenidos desde un a consulta a la base de datos
class Almacen
{
var $tienda = array(
"Accesorios" => array(
"Microfono" => array("17","Microfono Inalámbrico"),
"Lentes" => array("22","Para protejer los ojos"),
"Filtro" => array("10","Filtro para monitor")
),
"Software" => array(
"Office" => array("5000","Suite de oficina"),
"Dreamweaver" => array("6000","Suite para desarrollo web"),
"Matlab" => array("2000","Suite matemática")
),
"Hardware" => array(
"Teclado" => array("250","Teclado Qwerty"),
"Ratón" => array("80","Ratón Inalámbrico"),
"Monitor" => array("2000","Pantalla plana")
)
); esos datos los quiero obtener desde la bd de la tabla productos
  #4 (permalink)  
Antiguo 28/07/2006, 09:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Estás usando "Programación Orientada a Objetos" .. Sería recomendable que indiques el código completo de la "classe" que usas completo para ver sus métodos creados (como accede a sus datos) y si corresponde .. crear los métodos que corresponda.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 28/07/2006, 10:06
 
Fecha de Ingreso: octubre-2003
Mensajes: 139
Antigüedad: 20 años, 6 meses
Puntos: 0
este es el codigo completo
//////////////////////////////////
Código PHP:
<?php     
    
class Almacen 
    

        var 
$tienda = array( 
                
"Accesorios"    => array( 
                    
"Microfono"        => array("17","Microfono Inalámbrico"), 
                    
"Lentes"        => array("22","Para protejer los ojos"), 
                    
"Filtro"        => array("10","Filtro para monitor"
                                                ), 
                
"Software"        => array( 
                    
"Office"        => array("5000","Suite de oficina"), 
                    
"Dreamweaver"    => array("6000","Suite para desarrollo web"), 
                    
"Matlab"        => array("2000","Suite matemática"
                                                ), 
                
"Hardware"    => array( 
                    
"Teclado"    => array("250","Teclado Qwerty"), 
                    
"Ratón"        => array("80","Ratón Inalámbrico"), 
                    
"Monitor"    => array("2000","Pantalla plana"
                ) 
            ); 
         
        function 
getTienda() 
        { 
            return 
$this->tienda
        } 
/* function getTienda() */ 

        



    
function getCategorias($arreglo
        { 
            foreach (
$arreglo as $nombre=>$email
            { 
               
$catego[]=$nombre
            } 
            return 
$catego
        } 
/* function getCategorias($arreglo) */ 
         
        


    
function getElementosCate($arreglo$strTabla
        { 
            foreach (
$arreglo[$strTabla] as $nombre=>$valores
            { 
                
$ele[]=$nombre
            } 
            return 
$ele
        } 
/* function getElementosCate($arreglo, $strTabla)  */ 
         
        
function getPrecio($arreglo$strNombre
        { 
            foreach (
$arreglo as $grupo=>$elemento
            { 
                foreach (
$elemento as $nombre=>$datos
                { 
                    if (
$nombre == $strNombre
                    { 
                        return 
$datos[0]; 
                    } 
                }     
            } 
        } 
/* function getPrecio($arreglo, $strNombre) */ 
         
        
function getDescripcion($arreglo$strNombre
        { 
            foreach (
$arreglo as $grupo=>$elemento
            { 
                foreach (
$elemento as $nombre=>$datos
                { 
                    if (
$nombre == $strNombre
                    { 
                        return 
$datos[1]; 
                    } 
                }     
            } 
        } 
/* function getDescripcion($arreglo, $strNombre) */ 
         
       


     
function despliegaArreglo($arreglo$separa=""$url=""$estilo=""$param=""
        { 
            foreach (
$arreglo as $elemento
            { 
                if (
$url!=""
                { 
                    if (
$param!=""
                    {         
                        echo 
"<a href=\"".$url."?$param=$elemento\" class=\"$estilo\">$elemento</a>$separa"
                    } 
                    else 
                    { 
                        echo 
"<a href=\"".$url."\" class=\"$estilo\">$elemento</a>$separa"
                    } 
                } 
                else 
                { 
                    echo 
"$elemento$separa"
                } 
            } 
        } 
/* function despliegaArreglo($arreglo, $separa="", $url="", $estilo="", $param="") */ 
                 
         

     
function &getInstancia() 
        { 
            static 
$instancia
            if (!isset( 
$instancia )) 
            { 
                  
$instancia =& new Almacen(); 
            } 
            return 
$instancia;    
          }         
         
    } 
/* class Almacen */ 
?>
//////////////////////////////
hago esta pregunta porque es el codigo de un carro de compra esta poo y yo no programa oo pero quiero probrar si es factible modificarlo ya que quiero crear un bd para los productos saludos son solo 3 los archivos del carro si quieren los subo tal vez le sirva a alguien mas

Última edición por Cluster; 28/07/2006 a las 11:13
  #6 (permalink)  
Antiguo 28/07/2006, 10:07
 
Fecha de Ingreso: octubre-2003
Mensajes: 139
Antigüedad: 20 años, 6 meses
Puntos: 0
Código PHP:
<? 
    session_start
(); 
     
    class 
Carrito 
    

        function 
agregaElemento($producto$cantidad
        { 
            if (!isset(
$_SESSION["carrito"])) 
            { 
                
$_SESSION["carrito"][$producto]=$cantidad
            } 
/* if (!isset($_SESSION["carrito"])) */ 
            
else 
            { 
                foreach(
$_SESSION["carrito"] as $nombre => $unidades
                { 
                    if (
$_GET["producto"]==$nombre
                    { 
                         
$_SESSION["carrito"][$nombre]+=$cantidad
                         
$encontrado=1
                     } 
/* if ($_GET["producto"]==$nombre) */ 
                  
/* foreach($_SESSION["carrito"] as $nombre => $unidades) */ 
                  
if (!$encontrado
                { 
                    
$_SESSION["carrito"][$_GET["producto"]]=$cantidad
                } 
/* if (!$encontrado) */ 
            
}  /* else -> if (!isset($_SESSION["carrito"])) */ 
        
/* function agregaElemento($producto) */ 
         
        
function borraElemento($nombre
        { 
            if (isset(
$_SESSION["carrito"])) 
            { 
                foreach(
$_SESSION["carrito"] as $nombre => $unidades
                { 
                    if (
$_GET["eliminar"]==$nombre
                    { 
                         if (
$_SESSION["carrito"][$nombre]>0
                        { 
                            
$_SESSION["carrito"][$nombre]--; 
                        } 
/* if ($_SESSION["carrito"][$nombre]>0) */ 
                     
/* if ($_GET["eliminar"]==$nombre) */ 
                  
/* foreach($_SESSION["carrito"] as $nombre => $unidades) */ 
            
/* if (isset($_SESSION["carrito"])) */         
        
/* function borraElemento($producto) */ 
         
        
function mostrarCarrito() 
        { 
            
$productos =& Almacen::getInstancia(); 
            foreach(
$_SESSION["carrito"] as $nombre => $unidades
            { 
                if (
$unidades>0
                { 
                    echo 
"<tr>"
                    echo 
"  <td><div align=\"center\">$unidades</div></td>"
                    echo 
"  <td><div align=\"center\">$nombre</div></td>"
                    echo 
"  <td><div align=\"right\">$&nbsp;".( number_format$productos->getPrecio($productos->getTienda(),$nombre)*$unidades ) )."</div></td>"
                    echo 
"  <td><div align=\"center\"><a href=\"?eliminar=$nombre\" class=\"enlace\">Eliminar</a></div></td>"
                    echo 
"</tr>"
                } 
/* if ($unidades>0) */                 
            
/* foreach($_SESSION["carrito"] as $nombre => $unidades) */ 
        
/* function mostrarCarrito($formato="") */ 
         
        
function calcularTotal() 
        { 
            
$productos =& Almacen::getInstancia(); 
            foreach(
$_SESSION["carrito"] as $nombre => $unidades
            { 
                
$total $total + (double)($productos->getPrecio($productos->getTienda(),$nombre)*$unidades); 
            } 
/* foreach($_SESSION["carrito"] as $nombre => $unidades) */ 
            
return $total
        } 
/* function calcularTotal() */ 
             
    
/* class Carrito */ 
?>

Última edición por Cluster; 28/07/2006 a las 11:13
  #7 (permalink)  
Antiguo 28/07/2006, 10:08
 
Fecha de Ingreso: octubre-2003
Mensajes: 139
Antigüedad: 20 años, 6 meses
Puntos: 0
index.php el anterior era class.carrito.php

Código PHP:
<?php     
    
include("class.almacen.php");     
    include(
"class.carrito.php"); 
    
$productos=new Almacen
    
$compra=new Carrito
?> 
<html> 
  <head> 
    <title>Ejemplo de carrito de compras con PHP y sesiones by Pecesama</title> 
  </head> 
  <body> 
  <table width=95% border=0 align="center" cellpadding=0 cellspacing=0> 
  <tbody> 
    <tr> 
      <td width="20%" valign=top><br> 
        <table width="95%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#6699cc"> 
          <tr> 
            <td><table width="95%" border="0" align="center" cellpadding="0" cellspacing="0"> 
                <tr> 
                  <td width="71%"> <p align="center"> <br> 
                      <font color="#000099" face="Courier New"><strong><font size="4">Elegir 
                      categor&iacute;a </font></strong></font> 
                    <p> 
                        <?php 
$productos
->despliegaArreglo($productos->getCategorias($productos->getTienda()),"<br>",$_SERVER["PHP_SELF"], "enlace""categoria"); 
                        
?> 
                        </p> 
                        <br> 
                    </p> 
                  </td> 
                </tr> 
              </table></td> 
          </tr> 
        </table> 
        <p>&nbsp;</p></td> 
      <td height="100%" vAlign=top><br> 
        <table width="95%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#6699cc"> 
          <tr> 
            <td><table width="95%" border="0" align="center" cellpadding="0" cellspacing="0"> 
                <tr> 
                  <td width="71%"><div align="left"> 
                      <p align="center"><br><font color="#000099"> 
                        <strong><font size="4">Elegir producto / cantidad 
                        </font></strong></font></p> 
                         
                      <?php 
                            
if ($_GET["categoria"]) 
                            { 
                                echo 
"<center>| "
                                
$productos->despliegaArreglo($productos->getElementosCate($productos->getTienda(), $_GET["categoria"]), " | "$_SERVER["PHP_SELF"], "enlace""producto"); 
                                echo 
"<center>"
                            } 
                            if (
$_GET["producto"]) 
                            {                                 
                      
?> 
                                <form name="frmAgregarProducto" action="" method="post">           
                                  <table width="95%" border="0" align="center" cellpadding="0" cellspacing="0"> 
                                    <tr bgcolor="#CCCCCC"> 
                                      <td> <div align="center"><font face="Courier New"><strong><font color="#FFFFFF">Cantidad</font></strong></font></div></td> 
                                      <td> <div align="center"><font face="Courier New"><strong><font color="#FFFFFF">Producto</font></strong></font></div></td> 
                                      <td> <div align="center"><font face="Courier New"><strong><font color="#FFFFFF">Descripci&oacute;n</font></strong></font></div></td> 
                                      <td> <div align="center"><font face="Courier New"><strong><font color="#FFFFFF">Precio</font></strong></font></div></td>                               
                                    </tr> 
                                    <tr> 
                                      <td><div align="center">&nbsp;</div></td> 
                                      <td><div align="center">&nbsp;</div></td> 
                                      <td><div align="center">&nbsp;</div></td> 
                                      <td><div align="center">&nbsp;</div></td> 
                                    </tr> 
                                    <tr> 
                                      <td><div align="center"> 
                                        <input name="txtCantidad" type="text" id="txtCantidad" size="2" value="1"> 
                                      </div></td> 
                                      <td><div align="center"></div></td> 
                                      <td><div align="center"><?php echo $productos->getDescripcion($productos->getTienda(),$_GET["producto"]) ?></div></td> 
                                      <td><div align="center"><?php echo "$&nbsp;".number_format($productos->getPrecio($productos->getTienda(),$_GET["producto"])) ?></div></td> 
                                    </tr> 
                                    <tr> 
                                      <td><div align="center">&nbsp;</div></td> 
                                      <td><div align="center">&nbsp;</div></td> 
                                      <td><div align="center">&nbsp;</div></td> 
                                      <td><div align="center">&nbsp;</div></td> 
                                    </tr> 
                                    <tr> 
                                      <td><div align="center"><font face="Courier New">&nbsp;</font></div></td> 
                                      <td><div align="center"><font face="Courier New">&nbsp;</font></div></td> 
                                      <td><div align="center"><font face="Courier New">&nbsp;</font></div></td> 
                                      <td><div align="center"><font face="Courier New"> 
                                        <input type="submit" name="btnAgregar" value="Agregar"> 
                                        &nbsp;</font></div></td> 
                                    </tr> 
                                  </table> 
                                  </form> 
                      <?php 
                              

                      
?> 
                      <br>                             
                        </p> 
                    </div></td> 
                </tr> 
              </table></td> 
          </tr> 
        </table> 
        <br> 
        <table width="95%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#6699cc"> 
          <tr> 
            <td><table width="95%" border="0" align="center" cellpadding="0" cellspacing="0"> 
                <tr> 
                  <td width="71%"><div align="left"> 
                      <p align="center"><font color="#000099" face="Courier New"><br> 
                        <strong><font size="4">Nuestro carrito</font></strong></font></p> 
                        <?php 
                            
if ($_GET["producto"] and $_POST["btnAgregar"]!=""
                            { 
                                
$compra->agregaElemento($_GET["producto"], $_POST["txtCantidad"]); 
                            } 
                                                     
                            if (isset(
$_SESSION["carrito"])) 
                            { 
                                if (
$_GET["eliminar"]) 
                                { 
                                    
$compra->borraElemento($_GET["eliminar"]); 
                                } 
                        
?>                      
                              <table width="95%" border="0" align="center" cellpadding="0" cellspacing="0"> 
                                <tr bgcolor="#CCCCCC"> 
                                  <td> <div align="center"><font face="Courier New"><strong><font color="#FFFFFF">Cantidad</font></strong></font></div></td> 
                                  <td> <div align="center"><font face="Courier New"><strong><font color="#FFFFFF">Producto</font></strong></font></div></td> 
                                  <td> <div align="center"><font face="Courier New"><strong><font color="#FFFFFF">Subtotales</font></strong></font></div></td> 
                                  <td> <div align="center"><font face="Courier New"><strong></strong></font></div></td> 
                                </tr> 
                                <tr> 
                                  <td>&nbsp;</td> 
                                  <td>&nbsp;</td> 
                                  <td>&nbsp;</td> 
                                  <td>&nbsp;</td> 
                                </tr> 
                                <?php echo $compra->mostrarCarrito();    ?> 
                                <tr> 
                                  <td><hr noshade></td> 
                                  <td><hr noshade></td> 
                                  <td><hr noshade></td> 
                                  <td><hr noshade></td> 
                                </tr> 
                                <tr> 
                                  <td><font face="Courier New">&nbsp;</font></td> 
                                  <td><div align="right"><font face="Courier New"><b>&nbsp;Total: 
                                      &nbsp;</b></font></div></td> 
                                  <td><div align="right"><b><?php echo "$&nbsp;".$compra->calcularTotal(); ?></b></div></td> 
                                  <td><div align="right"><font face="Courier New">&nbsp;</font></div></td> 
                                </tr> 
                              </table>                             
                        <?php                      
                            

                        
?>                        
                        <br>                         
                    </div></td> 
                </tr> 
              </table></td> 
          </tr> 
        </table> 
        </td> 
    </tr> 
    <!--Inicio de las secciones--> 
    <!--Fin de las secciones--> 
  </tbody> 
</table> 
</body> 
</html>

Última edición por Cluster; 28/07/2006 a las 11:14
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:19.