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: 15 años, 6 meses
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: 18 años, 2 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: 15 años, 6 meses
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: 18 años, 6 meses
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: 15 años, 6 meses
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 04:30.