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

[Clases] Asignar valores a remplazar

Estas en el tema de [Clases] Asignar valores a remplazar en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Estoy trabajando en un sistema de plantillas (templates). El tema es así: en el archivo que se va a leer que es todo en HTML ...
  #1 (permalink)  
Antiguo 26/01/2009, 09:49
 
Fecha de Ingreso: enero-2009
Mensajes: 3
Antigüedad: 15 años, 3 meses
Puntos: 0
[Clases] Asignar valores a remplazar

Estoy trabajando en un sistema de plantillas (templates). El tema es así: en el archivo que se va a leer que es todo en HTML hay variables como ser {ruta_plantillas} que, al parcearse la página, se remplazaría por ./plantillas

Código PHP:
Sin parcear:
<
img src="{ruta_plantillas}/img/fondo.gif">

Parceado:
<
img src="./plantillas/img/fondo.gif"

El código es más o menos así:

Código PHP:
$clase->asignar("ruta_plantillas""./plantillas");

class 
clase{
          function 
asignar($valin$valout){
                   
$array = array($valin => $valout);
                   
$this->valor = (empty($this->valor)) ? $array $this->valor $array;
          }

El tema es que quiero asignar otras rutas más de la misma forma:

Código PHP:
$clase->asignar("ruta_config""./config/");
$clase->asignar("ruta_imagenes""./imagenes/"); 

Como se puede ver, $valores = array($valin => $valout); tiene un array. Si por el otro lado hago esto:

Código PHP:
$clase->asignar(array("ruta_plantillas" => "./plantillas""ruta_imagenes" => "./imagenes"));

class 
clase{
          function 
asignar($array)){
                   
$this->valor = (empty($this->valor)) ? $array $this->valor $array;
          }

De ese modo sí me los toma. ¿Qué tengo que modificar para que la función funcione como yo quiero?

Saludos




Actualizo

Al final lo que estoy logrando hacer es que una función asignar() acumule todos los datos y los imprima como ser:

Código PHP:
asignar("1""A");
asignar("2""B");
asignar("3""C");

//asignar() imprime todos los valores en "$array" de la siguiente manera
echo $array;

Que devuelve:
array(
"1" => "A""2" => "B""3" => "C"); 

Esa es la complicación

Última edición por jinc; 26/01/2009 a las 12:06
  #2 (permalink)  
Antiguo 26/01/2009, 11:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: [Clases] Asignar valores a remplazar

Tema trasladado a PHP Orientado a Objetos.
  #3 (permalink)  
Antiguo 26/01/2009, 11:32
 
Fecha de Ingreso: enero-2009
Mensajes: 3
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: [Clases] Asignar valores a remplazar

Estuve tocando nuevamente el código y viendo un poco la función array() más de cerca.

Código PHP:
$clase->asignar("1""A");
$clase->asignar("2""B");
$clase->asignar("3""C");

class 
clase{
function 
asignar($varin$varout){
              
$array = array($varin => $varout,);
              
$this->valor = (empty($this->valor)) ? $array $this->valor $array;
}


Lo que intento lograr es que la función asignar() me devuelva algo así

Código PHP:
$array = array("1" => "A""2" => "B""3" => "C"); 
¿Saben algún método?







PD: Gracias GatorV por mover este mensaje al subforo de POO, no sabía que existía.
  #4 (permalink)  
Antiguo 27/01/2009, 01:42
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: [Clases] Asignar valores a remplazar

¿Que se supone que debe ser $this->valor? Si es donde vas a guardar los valores asignados, sera un array. Puedes hacer algo como:
Código PHP:
class clase{
          function 
asignar($valin$valout){
             
$this->valor[$valin]=$valout;
          }

Esto pisaria los valores para el mismo indice y solo guardaria el ultimo:
Código PHP:
$clase->asignar('a',1);
$clase->asignar('a',2);
// en $this->valor tendrias solo array('a'=>2) 
  #5 (permalink)  
Antiguo 28/01/2009, 07:44
 
Fecha de Ingreso: enero-2009
Mensajes: 3
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: [Clases] Asignar valores a remplazar

Si, es que yo quería que sea acumulativo. Al final lo que hice fue poner un array:

Código PHP:
$clase>asignar(array(
      
"a" => "A",
      
"b" => "B",
)); 

Mientras que la clase quedó:

Código PHP:
class clase
                  function 
asignar($array){ 
                            
$this->valor = (empty($this->valor)) ? $array $this->valor $array;
                  } 

Me está funcionando perfectamente, aunque no se si es lo más estandar.

Saludos y gracias DarkJ por tu atención.
  #6 (permalink)  
Antiguo 01/02/2009, 20:34
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: [Clases] Asignar valores a remplazar

Pero qué se supone que hace $this->valor? Por otro lado, si $array es un array , entonces no lo puedes concatenar. Para unir dos arrays tienes la función array_merge(). Reordena un poco tus ideas, y define bien qué es lo que deseas lograr.

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 10:26.