¿Cómo puedo verificar si un objeto es una instancia de una clase específica?

1 minuto de lectura

avatar de usuario
Snickbrack

¿Hay alguna manera de comprobar si un objeto es un SimpleXMLELement?

private function output_roles($role) {
    foreach ($role as $current_role) {
        $role_ = $current_role->attributes();
        $role_type = (string) $role_->role;
        echo "<tr>";
        echo "<td><b>" . $role_type . "</b></td>";
        echo "</tr>";
        $roles = $role->xpath('//role[@role="Administrator"]//role[not(role)]');
        if (is_array($roles)) {
            $this->output_roles($roles);
        }
    }
}

Esta es mi función y la $role->xpath solo es posible si el objeto provisto es un SimpleXMLElement. ¿Cualquiera?

  • posible duplicado de Cómo verificar un tipo específico de objeto en PHP

    – IMSoP

    19 mayo 2015 a las 19:13

avatar de usuario
Rizier123

Puede verificar si un objeto es una instancia de una clase con instanceofp.ej

if($role instanceof SimpleXMLElement) {
    //do stuff
}

Los siguientes métodos y operadores son útiles para determinar si una variable en particular es un objeto de una clase específica:

  • $var instancia de TestClass: El operador “instanceof” devuelve verdadero si la variable $var es un objeto de la clase especificada (aquí está: “TestClass”).
  • get_class($var): Devuelve el nombre de la clase de $var, que se puede comparar con el nombre de la clase deseada.
  • es_objeto($var): Comprueba si la variable $var es un objeto.

Leer más en ¿Cómo verificar si un objeto es una instancia de una clase específica en PHP?

¿Ha sido útil esta solución?