Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] setear valores a funciones en clases

Estas en el tema de setear valores a funciones en clases en el foro de PHP en Foros del Web. Amigos, espero estén bien y de antemano gracias por su ayuda, tengo un problema al intentar pasar valores a una función dentro de una clase, ...
  #1 (permalink)  
Antiguo 12/03/2014, 11:37
 
Fecha de Ingreso: abril-2013
Mensajes: 24
Antigüedad: 11 años
Puntos: 0
setear valores a funciones en clases

Amigos, espero estén bien y de antemano gracias por su ayuda, tengo un problema al intentar pasar valores a una función dentro de una clase, les pongo el código

Código PHP:

class usuarios extends base_de_datos{
    
    private 
$user;
      private 
$pass;

    public function 
__get($property){
        if (
property_exists($this$property)){
              return 
$this->$property;
        }
      }

      public function 
__set($property$value){
        if (
property_exists($this$property)){
              
$this->$property $value;
        }
      }
  
    public function 
valida_login(){
        
base_de_datos::conexion_mqpltd();
        
$usuario mysql_real_escape_string($this->user);
        
$contrasena mysql_real_escape_string($this->pass);
        
$sql "SELECT id, nombres, Cat FROM sw_personal WHERE Clave = '".$contrasena."' and rut2 = '".$usuario."'";
        
$resultado mysql_query($sql);
        
$row mysql_fetch_array($resultado);
        if (
mysql_num_rows($resultado) == "1" and $row['nombres'] != "") {
            return 
true;
        }else{
            return 
false;
        }

    }

esta es mi clase para validar a un usuario, ahora bien cuando yo la llamo en otra clase no puedo pasarle parametros, desconozco en que me estare equivocando, este es el codigo,

Código PHP:


class constructor{
    public function 
usuarios(){
        
$usuarios = new usuarios();
        return 
$usuarios;
    }
}


class 
llamados extends constructor{

    function 
recoge_login($user$pass){
    
constructor::usuarios->user $user;
    
constructor::usuarios->pass $pass;

    if (
constructor::usuarios->valida_login()) {
        echo 
constructor::usuarios->retorna_nombre_completo();
    }else{
        
header('Location: index.php');
    }
}


Agredesco su ayuda, saludos
  #2 (permalink)  
Antiguo 12/03/2014, 12:33
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: setear valores a funciones en clases

el miembro constructor::usuarios no es una propiedad, es una función, por lo tanto accederías así:

constructor::usuarios()->user

y si te das cuenta, en cada llamada a la función genera una instancia nueva, por lo cual deberías crear o un singleton, o convertirlo en propiedad y crear la instancia primaria de usuario desde el constructor de la clase.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 12/03/2014, 12:45
 
Fecha de Ingreso: abril-2013
Mensajes: 24
Antigüedad: 11 años
Puntos: 0
Respuesta: setear valores a funciones en clases

Amigo, no entendi tu respuesta, me podrias dar algun ejemplo para yo poder guiarme??

muchas gracias por tu respuesta
  #4 (permalink)  
Antiguo 12/03/2014, 13:02
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: setear valores a funciones en clases

uno de los problemas al programar en POO es el de No conocer los conceptos fundamentales y más aún si no se conocen los tipos de miembros o elementos que componen una clase, por el cual se vuelve dificil tratar de ayudarte si no los conoces.

Sé que algunos piensan ¿¡que fastidio, no me puedes dar un ejemplo!? y comprendo, aprender no es fácil, pero tampoco tengo tiempo (y no valdría la pena) de hacerle ejemplos personalizados a todo el mundo, cuando en Internet hay miles de tutoriales sobre POO.

así que te recomiendo que estudies ampliamente sobre POO, el manual de PHP sobre POO te puede ayudar, y también estudia sobre los pilares de la POO (encapsulación, herencia y polimorfismo).

Saludos y éxito.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 12/03/2014, 14:24
 
Fecha de Ingreso: abril-2013
Mensajes: 24
Antigüedad: 11 años
Puntos: 0
Respuesta: setear valores a funciones en clases

gracias por tu orientacion y respuesta, ya comprendi tu primera respuesta y logre solucionar mi problema, saludos

Etiquetas: clases, herencia, mvc, poo
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 08:41.