Foros del Web » Programando para Internet » PHP »

Ayuda con objetos

Estas en el tema de Ayuda con objetos en el foro de PHP en Foros del Web. Hola, estoy buscando la manera de crear un sistema de plantillas y me he topado con este codigo: Código: <? class plantilla{ function plantilla($template_file){ $this->tpl_file ...
  #1 (permalink)  
Antiguo 27/09/2010, 15:34
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 10 meses
Puntos: 0
Ayuda con objetos

Hola, estoy buscando la manera de crear un sistema de plantillas y me he topado con este codigo:

Código:
<?
class plantilla{
        function plantilla($template_file){
                $this->tpl_file = 'plantillas/' . $template_file . '.tpl';
        }
        
        function asigna_variables($vars){
                $this->vars= (empty($this->vars)) ? $vars : $this->vars . $vars;
        }
        
        function muestra(){
                if (!($this->fd = @fopen($this->tpl_file, 'r'))) {
                        sostenedor_error('error al abrir la plantilla ' . $this->tpl_file);
                } else{
                        $this->template_file = fread($this->fd, filesize($this->tpl_file));
                        fclose($this->fd);
                        $this->mihtml = $this->template_file;
                        $this->mihtml = str_replace ("'", "\'", $this->mihtml);
                        $this->mihtml = preg_replace('#\{([a-z0-9\-_]*?)\}#is', "' . $\\1 . '", $this->mihtml);
                        reset ($this->vars);
                        while (list($key, $val) = each($this->vars)) {
                                $$key = $val;
                        }
                        eval("\$this->mihtml = '$this->mihtml';");
                        reset ($this->vars);
                        while (list($key, $val) = each($this->vars)) {
                                unset($$key);
                        }
                        $this->mihtml=str_replace ("\'", "'", $this->mihtml);
                        echo $this->mihtml;
                }
        }
}
?>
Y no entiendo desde: $this->mihtml = preg_replace('#\{([a-z0-9\-_]*?)\}#is', "' . $\\1 . '", $this->mihtml); que es donde pasa de ser {variable} a $variable

Tambien si me podeis explicar la funcionalidad de la doble $, me acuerdo de haberlo usado pero no de para que servia.

En link de la pagina del codigo: http://www.cristalab.com/tutoriales/creacion-y-uso-de-plantillas-o-templates-en-php-c132l/

Gracias!
  #2 (permalink)  
Antiguo 28/09/2010, 03:28
 
Fecha de Ingreso: septiembre-2010
Ubicación: Malaga
Mensajes: 47
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Ayuda con objetos

Hola

El $$ indicia que es Variables de variables

Con ejemplo se vera mas claro

Código PHP:
Ver original
  1. $ciudad = "Madrid";
  2.  
  3. $a = "ciudad";
  4.  
  5. //$$a -> "Madrid";
  6.  
  7.  
  8. // al reves
  9.  
  10. $hab = "habitacion";
  11.  
  12. $$hab = 5;
  13.  
  14. print "habitacion ".$habitacion."<br>";
  15. print "d-hab ".$hab."<br>";
  16. print "dd-hab ".$$hab."<br>";
  17.  
  18. // habitacion 5
  19. // d-hab habitacion
  20. // dd-hab 5

Etiquetas: objetos
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 14:04.