Foros del Web » Programando para Internet » PHP »

Problema Notice: Undefined offset

Estas en el tema de Problema Notice: Undefined offset en el foro de PHP en Foros del Web. Hola soy nuevo en el foro y novato en php. Estoy leyendo un manual y probando los codigos en los cuales tengo algunos problemas. Cree ...
  #1 (permalink)  
Antiguo 01/04/2011, 00:42
 
Fecha de Ingreso: abril-2011
Mensajes: 6
Antigüedad: 13 años
Puntos: 0
Pregunta Problema Notice: Undefined offset

Hola soy nuevo en el foro y novato en php.
Estoy leyendo un manual y probando los codigos en los cuales tengo algunos problemas.
Cree dos scripts uno Persona.php y el otro PruebaPersona.php
-PruebaPersona.php
Código PHP:
<?php
    
require_once 'Persona.php';
    
$persona = new Persona('31/10/1986');
    echo 
$persona->decirEdad();
?>
-Persona.php
Código PHP:
<?php
class Persona{
    private 
$_fechaNacimiento;
    
    public function 
__contructor($fechaNacimiento){
        
$this->_fechaNacimiento $fechaNacimiento;
    }
    public function 
decirEdad(){
        return 
$this->_calcularEdad();
    }
    private function 
_calcularEdad(){
        
$diaActual date("j");
        
$mesActual date("n");
        
$añoActual date("Y");
        list(
$dia$mes$año) = explode("/"$this->_fechaNacimiento);
        
        
// si el mes es el mismo pero el dia inferior aun no ha cumplido años, le quitamos un año al actual
        
if(($mes == $mesActual) && ($dia $diaActual)){
            
$añoActual $añoActual 1;
        }
        
        
//si el mes es superior al actual tmapoco habra cumplido años, pero eso le quitamos un año al actual
        
if($mes $mesActual){
            
$añoActual $añoActual 1;
        }
        
        
//ya no habria mas condiciones, ahora simplemente restamos los años y mostramos el resultaso como su edad
        
$edad $añoActual $año;
        
        return 
$edad;
    }
}
?>
Al tratar de probar me sale el siguiente error

Notice: Undefined offset: 2 in C:\xampp\htdocs\PHP5\Persona.php on line 15

Notice: Undefined offset: 1 in C:\xampp\htdocs\PHP5\Persona.php on line 15
2011

No se que significa, necesito ayuda, se que debe ser una idiotes pero bueno.
Desde ya Mucha Gracias.
  #2 (permalink)  
Antiguo 01/04/2011, 03:10
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema Notice: Undefined offset

Quiere decir que explode('/', $this->_fechaNacimiento) devuelve solo un elemento y no 3 como esperas.

Sugiero que en el constructor pongas al final:
Código PHP:
Ver original
  1. echo $fechaNacimiento;
  2. echo $this->_fechaNacimiento;

Si ahi te aparecen ambas variables con el mismo valor, entonces coloca la segunda linea en las otras funciones para ver donde (y tal vez porque) pierde/cambia su valor.

Aparte, resulta un tanto extraño ver que usas ñ en los nombres de tus variables, no se recomienda, principalmente por compatibilidad, aunque desconozco si realmente puede llegar a funcionar, ojala nos cuentes.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 01/04/2011, 10:06
 
Fecha de Ingreso: abril-2011
Mensajes: 6
Antigüedad: 13 años
Puntos: 0
Respuesta: Problema Notice: Undefined offset

Hola
Gracias por responder tanrapido Triby.
Hice lo que me dices, pero no imprime nada el echo
Para probar si el programa llegaba al contructor puse
Código PHP:
public function __contructor($fechaNacimiento){
        echo 
$fechaNacimiento;
        
$this->_fechaNacimiento $fechaNacimiento;
    } 
pero no imprime nada, es como si no entrata al constructor.
Eso no se que hacer.
Gracias.
  #4 (permalink)  
Antiguo 01/04/2011, 10:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema Notice: Undefined offset

__contructor() ?

y yo que pensaba que era __constructor()
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 01/04/2011, 10:39
 
Fecha de Ingreso: abril-2011
Mensajes: 6
Antigüedad: 13 años
Puntos: 0
Respuesta: Problema Notice: Undefined offset

Muchas gracias a todos ya solucione el problema, pateketrueke me dio la clave XD era algo tan simple que da risa, la palabra reservada es __construct para el contructor, no __contructor ni __constructor.
Era un detalle, pero los detalles le dan sabor a la vida XD.
Bueno sin nada mas que decir, muchas gracias.

PD: sabia que era una idiotes, las ñ no me causaron problemas, pero no las usare como dices triby, ya que no se recomienda.
(Disculpen mi orto-grafia tratando de mejorar).

Etiquetas: offset, undefined
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 17:24.