Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Asignar a constante el valor de una variable.

Estas en el tema de Asignar a constante el valor de una variable. en el foro de PHP en Foros del Web. Hola amigos! Tengo un problema que no puedo resolver y es que con la Programacion Orientada a Objetos no me llevo muy bien. Tengo este ...
  #1 (permalink)  
Antiguo 23/03/2013, 12:37
 
Fecha de Ingreso: noviembre-2007
Mensajes: 191
Antigüedad: 16 años, 5 meses
Puntos: 0
Asignar a constante el valor de una variable.

Hola amigos! Tengo un problema que no puedo resolver y es que con la Programacion Orientada a Objetos no me llevo muy bien.
Tengo este codigo, que es el inicio de una clase:

Código PHP:
//ACA HAGO UN INCLUDE CON UN ARCHIVO QUE CONTIENE VARIABLES CON VALORES ASIGNADOS

class Fb {
    const 
ID_APP $una_variable
    const 
SECRETO $una_variable;
    const 
ACCESS_TOKEN =  $una_variable;
    const 
ID_PAGINA =  $una_variable;
    const 
ID_PERFIL =  $una_variable;
    private 
$fb;
...

Lo que estoy tratando de hacer es asignar a cada constante, el valor que tengo guardado en diferentes variables, pero me marca error.

Si hago "const ID_APP = $una_variable;" me da error, pero si hago "const ID_APP = "el valor aca";" no me da error.

Me ayudan?? Gracias!!
  #2 (permalink)  
Antiguo 23/03/2013, 12:55
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Asignar a constante el valor de una variable.

Ves que existe una contradicción en la frase "asignar a una constante un valor que puede ser variable"?
  #3 (permalink)  
Antiguo 23/03/2013, 13:05
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 6 meses
Puntos: 80
Respuesta: Asignar a constante el valor de una variable.

Si lo que quieres es que todos los objetos creados del tipo FB, tengan el mismo valor para esos atributos deberías declararlos static.

Y luego las seteas desde el constructor o algún método setter.

PHP no te deja en la definición de los atributos asignarle una variable.

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #4 (permalink)  
Antiguo 23/03/2013, 14:27
 
Fecha de Ingreso: noviembre-2007
Mensajes: 191
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Asignar a constante el valor de una variable.

dashtrash, si veo la contradiccion.
Me pondrias un ejemplo?

Explico un poco mas, el problema viene porque el valor de esas constantes, esta almacenado en una base de datos mysql, no va a cambiar a lo largo del ciclo del programa, pero necesito obtenerlo de la base de datos y no se como solucionar esto.

Abrazo!
  #5 (permalink)  
Antiguo 23/03/2013, 15:35
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 6 meses
Puntos: 80
Respuesta: Asignar a constante el valor de una variable.

Puedes implementar un patron Registry.
http://desarrolladorsenior.blogspot....ry-en-php.html
http://desphpparatodos.blogspot.com/...-registry.html
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #6 (permalink)  
Antiguo 23/03/2013, 15:55
 
Fecha de Ingreso: septiembre-2011
Mensajes: 219
Antigüedad: 12 años, 7 meses
Puntos: 31
Respuesta: Asignar a constante el valor de una variable.

Cita:
Iniciado por ebalmaceda Ver Mensaje
dashtrash, si veo la contradiccion.
Me pondrias un ejemplo?

Explico un poco mas, el problema viene porque el valor de esas constantes, esta almacenado en una base de datos mysql, no va a cambiar a lo largo del ciclo del programa, pero necesito obtenerlo de la base de datos y no se como solucionar esto.

Abrazo!
Definición de constante por la real academia española:

"Se aplica al valor o la cantidad que permanece fija en un cálculo o proceso matemático"

Que permanece fija, por ende no cambia.

Lisa y llanamente no se puede asignar una variable al valor de una constante.

Una vaca es una vaca desde el momento de la gestación, no puede transformarse en caballo al momento de nacer.

  #7 (permalink)  
Antiguo 23/03/2013, 16:17
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 14 años, 5 meses
Puntos: 25
Respuesta: Asignar a constante el valor de una variable.

no se se esto se sirve o no, lo que entiendo es que quieres asignar un variable a un objeto...!
este ejemplo:
Código PHP:
Ver original
  1. public $_uno;
  2.     public $_dos;
  3.     public $_tres;
  4.     public $_array = array();
  5.    
  6.     public function __construct()
  7.     {
  8.         return array(
  9.             $this->_uno = 'uno',
  10.             $this->_dos = 'dos',
  11.             $this->_tres = 'tres'            
  12.         );
  13.     }

se queriqmos asignar un nuevo valor:
Código PHP:
Ver original
  1. $val = new Mi();
  2. $val->_uno = 'qualquier cosa'; // resultado de echo $val->_uno sera qualquier cosa
  3. // y sequieres dejar lo como default (uno)
  4.  
  5. echo $val->_uno; // resultado uno
__________________
cada vez que aprendes algo te crees que no sabes nada
  #8 (permalink)  
Antiguo 23/03/2013, 16:53
 
Fecha de Ingreso: noviembre-2007
Mensajes: 191
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Asignar a constante el valor de una variable.

Cita:
Iniciado por arros Ver Mensaje
no se se esto se sirve o no, lo que entiendo es que quieres asignar un variable a un objeto...!
este ejemplo:
Código PHP:
Ver original
  1. public $_uno;
  2.     public $_dos;
  3.     public $_tres;
  4.     public $_array = array();
  5.    
  6.     public function __construct()
  7.     {
  8.         return array(
  9.             $this->_uno = 'uno',
  10.             $this->_dos = 'dos',
  11.             $this->_tres = 'tres'            
  12.         );
  13.     }

se queriqmos asignar un nuevo valor:
Código PHP:
Ver original
  1. $val = new Mi();
  2. $val->_uno = 'qualquier cosa'; // resultado de echo $val->_uno sera qualquier cosa
  3. // y sequieres dejar lo como default (uno)
  4.  
  5. echo $val->_uno; // resultado uno

Creo que voy entendiendo, y si dentro de un procedimiento (en la clase), quiero llamar a una de esas variables ya creadas como seria??
  #9 (permalink)  
Antiguo 23/03/2013, 16:55
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 14 años, 5 meses
Puntos: 25
Respuesta: Asignar a constante el valor de una variable.

como he anunciado antes para llamar a uno:
Código PHP:
Ver original
  1. echo $val->_uno; // resultado seria uno

bueno la class en este ejemplo es Mi()
__________________
cada vez que aprendes algo te crees que no sabes nada
  #10 (permalink)  
Antiguo 24/03/2013, 07:36
 
Fecha de Ingreso: noviembre-2007
Mensajes: 191
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Asignar a constante el valor de una variable.

Muchas gracias, estuve probando y aun no lo logro de todo, ja ja ja.
Dentro de la clase puse la siguiente funcion:

Código PHP:

    
function prueba($saludo
    {
        
$valor $val->_uno//Esto no me funciona....
        
$valor .= $saludo;
        return 
$valor;
    } 
y asi instancio el objeto:

Código PHP:
$val = new Mi();
$val->_uno 'Hola que tal'//A la variable uno le asigno el valor "Hola que tal"
 
echo $val->prueba("¿Como Estas?"); 
El problema es que la funcion "prueba", no me toma el valor que le asigne a "_uno". Que estoy haciendo mal?


LO SOLICIONE ASI: $this->_uno

Última edición por ebalmaceda; 24/03/2013 a las 07:43
  #11 (permalink)  
Antiguo 24/03/2013, 18:26
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Asignar a constante el valor de una variable.

Creo que estás confundiendo dos tipos distintos de "constantes".
Las constantes que estás trayendo de base de datos, son "constantes a nivel de aplicación".Si bajas un paso de ese nivel, deja de ser una "constante".
Qué significa eso? Que, si bajas del "nivel aplicación", esa "constante" no es más que un campo de una base de datos que se puede modificar, borrar, y manipular.Lo único que lo hace una "constante" es que se supone que tú no lo vas a modificar o a borrar.Pero no hay nada que te lo impida.
Con las constantes de clase, pasa justo lo contrario.Su nivel es de "clase",es una construcción del lenguaje. Por extensión, se puede usar a un nivel más alto,como "constante de aplicación".
Si le cambias el nombre a lo que llamas "constantes", y lo pones a nivel de aplicación, lo que te sale es "configuración".Valores *de aplicación* que no cambian en la ejecución del programa.

Lo que necesitas es un objeto "Configuracion", que es pasado a las clases, de donde inicializan sus valores.

Etiquetas: constante, valor, variables
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:43.