Foros del Web » Programando para Internet » PHP »

Problemas al cambiar variable inicializada de class

Estas en el tema de Problemas al cambiar variable inicializada de class en el foro de PHP en Foros del Web. Hola foro, tengo una class "Base" donde incluyo los métodos más usados del site, y al declararla creo las variables con los nombres de las ...
  #1 (permalink)  
Antiguo 23/06/2013, 14:45
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
Problemas al cambiar variable inicializada de class

Hola foro, tengo una class "Base" donde incluyo los métodos más usados del site, y al declararla creo las variables con los nombres de las tablas que uso.

El problema me surge ahora, cuando necesito cambiar una de esas variables si en la base de datos tengo un parámetro específico... os dejo el inicio de la clase con el código que no me está funcionando...

Código PHP:
<?php
class Base
{
    var 
$blog_tb='x3m_blogs.blogs';
    var 
$admins_tb='x3m_blogs.usuarios';
    var 
$permisos_tb='x3m_blogs.usuarios_permisos';

    function 
__construct($sql)
    {
        
$this->sql=$sql;

        
$query='SELECT acceso_Blog
                    FROM '
.$this->blog_tb.'
                    WHERE dominio LIKE "%'
.$_SERVER['HTTP_HOST'].'%"';
        if(
$this->sql->valor($query)=='standalone')
        {
            
$this->admins_tb='usuarios';
            
$this->permisos_tb='usuarios_permisos';
        }
    }
}
El caso es que no me funciona... y no me modifica dichas variables...

Gracias!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #2 (permalink)  
Antiguo 23/06/2013, 14:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas al cambiar variable inicializada de class

Bueno, hay una condición que permite que se cambien o no dichas variables, si eso no sucede así es porque dicha condición no se está cumpliendo.

No tienes errores, no tienes ningún problema, así funciona la lógica, tu lo has programado así.

Código PHP:
Ver original
  1. $value = $this->sql->valor($query);
  2.  
  3. var_dump($value);
  4.  
  5. if($value=='standalone')

¿Todo bien?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 23/06/2013, 15:25
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
Respuesta: Problemas al cambiar variable inicializada de class

Gracias pateketrueke por tan pronta respuesta...

Lo cierto es que sí, parece que está todo bien, pero en la práctica no me cambia el valor de las variables... accede al IF pero no lo cambia...

Lo que sí que estoy viendo es que si en el PHP llamo a esa variable, me la devuelve bien ("usuarios"), mientras que si lo hago desde otra clase que tenga "extends Base" me devuelve ("x3m_blogs.usuarios")...
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #4 (permalink)  
Antiguo 23/06/2013, 15:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas al cambiar variable inicializada de class

Pues será porque el diseño de tu clase usa var y eso traduce como public, que es la forma vieja de declarar propiedades, deberías actualizar tu código mediante estándares de visibilidad y acceso OOP en PHP.

Eso o no tengo la menor idea, consulta un manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 23/06/2013, 15:55
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
Respuesta: Problemas al cambiar variable inicializada de class

Ya le he estado ojeando al tema de public | private | protected y public, el valor por defecto es el que mejor le va, ya que tengo que usarlo desde cualquier clase...

A ver si alguien más no ilumina ;)

Gracis de nuevo pateketrueke!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #6 (permalink)  
Antiguo 19/07/2013, 06:00
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
Respuesta: Problemas al cambiar variable inicializada de class

Hola de nuevo pateketrueke,

al final he optado por hacer la misma consulta en las clases donde me es necesario saber esa variable... me da la impresión que al hallar la variable en el __construct() no forma parte de la clase a no ser que se consulte en sí misma...

gracias por la ayuda ;)
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #7 (permalink)  
Antiguo 20/07/2013, 02:06
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Problemas al cambiar variable inicializada de class

Cita:
Iniciado por X3mdesign Ver Mensaje
Hola de nuevo pateketrueke,

al final he optado por hacer la misma consulta en las clases donde me es necesario saber esa variable... me da la impresión que al hallar la variable en el __construct() no forma parte de la clase a no ser que se consulte en sí misma...

gracias por la ayuda ;)
Prueba esto:
Código PHP:
Ver original
  1. class Base
  2. {
  3.     private $sql;
  4.     private $blog_tb='x3m_blogs.blogs';
  5.     private $admins_tb='x3m_blogs.usuarios';
  6.     private $permisos_tb='x3m_blogs.usuarios_permisos';
  7.  
  8.     function __construct($sql)
  9.     {
  10.         $this->sql=$sql;
  11.  
  12.         $query='SELECT acceso_Blog
  13.                    FROM '.$this->blog_tb.'
  14.                    WHERE dominio LIKE "%'.$_SERVER['HTTP_HOST'].'%"';
  15.         if($this->sql->valor($query)=='standalone')
  16.         {
  17.             $this->admins_tb='usuarios';
  18.             $this->permisos_tb='usuarios_permisos';
  19.         }
  20.     }
  21. }
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: class, select, sql, tabla, usuarios, variable, 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 13:00.