Hay unha serie de funcións que permiten obter información de obxetos e clases:

  • method_exists(obxeto,metodo)
  • property_exists(clase,propiedade)
  • class_exists(clase)
  • interface_exists(interface)
  • get_class_vars(clase)
  • get_class_methods(clase)
  • get_object_vars(obxeto)
  • get_class(obxeto)
  • get_parent_class(clase ou obxeto)
  • obxeto instanceof clase
    $obxeto1 = new clasePai();
    $obxeto2 = new clasePai();
    
    var_dump($obxeto1 instanceof claseNai); // Falso
    var_dump($obxeto1 instanceof clasePai); // Verdadeiro
    

    É importante ter en conta como funcionan os operadores de igualdade e identidade cos obxetos:

  • Dous obxetos son iguais == se son instancias da mesma clase e teñen as mesmas propiedades e valores
  • Dous obxetos son identicos === se son a mesma instancia dunha clase
  • $obxeto1 = new clasePai();
    $obxeto2 = new clasePai();
    
    var_dump($obxeto1 == $obxeto2); // E verdadeiro, son da mesma clase e cos mesmos valores nas propiedades
    var_dump($obxeto1 === $obxeto2); // E falso, son instancias distintas