El método isa
nos permite saber si una clase hereda de otra:
if ($a->isa("B")) { # El objeto a es de la clase B ... }El método
isa
memoriza los valores que retorna, de manera que una vez que
conoce un par no necesita realizar una segunda búsqueda. Eso significa que una modificación
dinámica del vector @ISA
puede dar lugar a que el método retorne valores
obsoletos.
Hay ocasiones en las que lo que nos preocupa no es tanto a que clase pertenece un objeto
como saber si dispone de un cierto método. El método can
devuelve
verdadero si el objeto puede llamar al método solicitado:
if ($a->can("display_object")) { # el objeto dispone del método ... }
De hecho, el valor que devuelve can
es una referencia al método
por el que se pregunta.