Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/10/2010, 15:37
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Cómo puedo llamar a un método dentro de la misma clase?

Buenas noches,

Estoy atascado en un punto. Tengo mi clase usuario definida, la cual tiene varios métodos, pero me gustaría poder llamar dentro de un método a otro que hay en la misma clase. Con un ejemplo creo que se entenderá mejor.

Código PHP:
Ver original
  1. class Usuario{
  2.  
  3.     private $_nombre;
  4.     private $_usuario;
  5.     private $_password;
  6.     private $_correo;
  7.     private $_pais;
  8.     private $_birthday;
  9.     private $_sexo;
  10.     private $_userReferido;
  11.     private $_userKey;
  12.     private $_con;
  13.        
  14.     public function __construct($DbConexion){
  15.             $this->_con=$DbConexion;
  16.     }
  17.    
  18.     // Registrar nuevo usuario
  19.     public function addNewUser($nombre,$usuario,$password,$correo,$pais,$birthday,$sexo,$userReferido){
  20.        
  21.         // Cargo las variables
  22.         $this->_nombre=$nombre;
  23.         $this->_usuario=$usuario;
  24.         $this->_password=$password;
  25.         $this->_correo=$correo;
  26.         $this->_pais=$pais;
  27.         $this->_birthday=$birthday;
  28.         $this->_sexo=$sexo;
  29.         $this->_userReferido=$userReferido;
  30.        
  31.         $this->_userKey = randomKeygen($length=10);
  32.         echo $this->_userKey;
  33.        
  34.         // Inserta datos en la TBL_USERS
  35.         $query = "INSERT INTO tbl_user (`user_login`,`user_pass`,`user_activation_key`) VALUES (:username,:password,:user_activation_key)";
  36.  
  37.         $comando = $this->_con->prepare($query);
  38.         $comando->execute(array(':username'=>$this->_usuario,
  39.                                 ':password'=>$this->_password,
  40.                                 ':user_activation_key'=>$this->_userKey));
  41.        
  42.         // Inserta datos en la TBL_USERS_PERSONAL
  43.  
  44.         // Inserta datos en la TBL_USERS_PREFERENCIAS
  45.  
  46.     }
  47.    
  48.     // Genera un password aleatorio
  49.     function randomKeygen($length=10){
  50.         $key = '';
  51.         list($usec, $sec) = explode(' ', microtime());
  52.         mt_srand((float) $sec + ((float) $usec * 100000));
  53.        
  54.         $inputs = array_merge(range('z','a'),range(0,9),range('A','Z'));
  55.  
  56.         for($i=0; $i<$length; $i++)
  57.         {
  58.             $key .= $inputs{mt_rand(0,61)};
  59.         }
  60.         return $key;
  61.     }
  62. }

Dentro del método addNewUser() me gustaría poder utilizar el método randomKeygen() para generar la clave de activación de la cuenta. Pero cuando lo hago así (linea 31), me dice "Fatal error: Call to undefined function randomKeygen()"

¿Sabéis cómo lo tengo que hacer?

Muchas gracias de antemano!