php - una - view lenta mysql
¿Puedo verificar si un objeto es una especie de clase específica en PHP? (4)
No puede verificar el valor de retorno en sí, pero puede verificar la clase desde la que se devuelve utilizando '' instanceof ''. (De manera similar, puede encontrar '' get_class '' útil).
Esta pregunta ya tiene una respuesta aquí:
- Cómo verificar un tipo específico de objeto en PHP 4 respuestas
Ejemplo: se supone que un método devuelve una instancia de una clase específica. ¿Cómo puedo verificar ese valor de retorno si es de esa clase?
Puede usar el operador instanceof
o la función is_a .
is_a
es útil si quieres pasar una cadena con el nombre de la clase (en una base de código más dinámica).
Puede usar el operador instanceof
para verificar si un objeto es una instancia de:
- Una clase
- O una clase infantil de esa clase
- O una instancia de una clase que implementa una interfaz
Lo que significa que no se puede usar para detectar si su objeto es una instancia de una clase specific
, ya que dirá "sí" si su objeto es una instancia de una clase hija de esa clase.
Por ejemplo, esta porción de código:
class ClassA {}
class ClassB extends ClassA {}
$a = new ClassB();
if ($a instanceof ClassA) {
echo ''$a is an instanceof ClassA<br />'';
}
if ($a instanceof ClassB) {
echo ''$a is an instanceof ClassB<br />'';
}
Te conseguirá esta salida:
$a is an instanceof ClassA
$a is an instanceof ClassB
$a
, en cierto modo, es una instancia de ClassA
, ya que ClassB
es una clase ClassA
de ClassA
.
Y, por supuesto, $a
también es una instancia de ClassB
- vea la línea donde se instancia.
if ($object instanceof classname)
....