> Faqs > Comprobar en PHP que una variable tiene un objeto (no null) y que el objeto tiene una propiedad

Comprobar en PHP que una variable tiene un objeto (no null) y que el objeto tiene una propiedad

Necesito usar con total seguridad una propiedad de un objeto con PHP. Pero es que a veces el objeto es null...

Mi sentencia PHP hace uso de esa propiedad como $district->name. Para asegurarme que no vaya a dar problemas quiero comprobar:

  • Que $district existe (que la variable se ha creado antes)
  • Que no es null
  • Que es un tipo de datos objeto
  • Que tiene la propiedad name

¿Cuál es la manera más sencilla de hacer todo eso en PHP?

Respuestas

No es muy difícil hacer lo que quieres, pero tampoco hay una manera de hacerlo con una sola comprobación, en realidad tendrás que hacer varias comprobaciones para asegurarte de que $district->name no causará problemas en PHP debido a que la variable no exista, o sea null, que no sea un objeto, o no tenga la propiedad name...

Son varias cosas y para ello puedes usar un condicional con una combinación de isset(), is_object(), y property_exists().

Mira el código siguiente a ver q te parece:

if (isset($district) && is_object($district) && property_exists($district, 'name')) {
    // Es seguro usar $district->name
    echo $district->name;
} else {
    // Manejar la situación cuando $district->name no es accesible o seguro de usar
    echo "El nombre del distrito no está disponible.";
}
  • isset($district) verifica si la variable existe y no es null.
  • is_object($district) comprueba si $district es un objeto
  • property_exists($district, 'name') verifica si el objeto $district tiene la propiedad name.

Yo creo que con eso lo tienes y podrás acceder de manera totalmente segura a la propiedad name de la variable esa.

Espero que te sirva.

Julian
1147 49 87 46
Vale, entiendo las situaciones distintas para esta comprobación. muchas gracias.