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?¿Puedo verificar si un objeto es una especie de clase específica, en PHP?
Respuesta
Usted puede utilizar el operador instanceof
, para comprobar si un objeto es una instancia de:
- Una clase
- O una clase hija 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 />';
}
Le conseguirá este resultado:
$a is an instanceof ClassA
$a is an instanceof ClassB
$a
, en cierto modo, es una instancia de ClassA
, como ClassB
es una clase de niño de ClassA
.
Y, por supuesto, $a
es también una instancia de ClassB
- vea la línea donde se instancia.
if ($object instanceof classname)
....
No puede verificar el valor devuelto, pero puede verificar la clase de la que se devuelve usando 'instanceof'. (De manera similar, puede encontrar 'get_class' útil.)
Puede usar el operador instanceof
o la función is_a.
is_a
es útil si desea pasar una cadena con el nombre de la clase (en una base de código más dinámica).
- 1. En Java, ¿cómo puedo verificar si una colección contiene una instancia de una clase específica?
- 2. ¿Cómo puedo saber si un elemento contiene una clase específica?
- 3. ¿Cómo puedo determinar si un objeto Delphi es de una clase específica y no de una clase descendiente?
- 4. python 3: cómo verificar si un objeto es una función?
- 5. Comprobando si un objeto Clase es un subtipo de otro objeto Clase en Java?
- 6. ¿Cómo puedo verificar si una variable es un objeto jQuery o un elemento DOM simple?
- 7. ¿Cómo puedo verificar si una variable es una instancia de una clase?
- 8. ¿Cómo puedo comprobar si existe un objeto con una propiedad específica en una matriz de Ruby?
- 9. Es posible, en una plantilla de django, verificar si un objeto está contenido en una lista
- 10. ¿Cómo puedo verificar si un objeto es un iterador en Python?
- 11. Comprueba si un objeto pertenece a una clase en Java
- 12. ¿Cómo puedo verificar si se lanza un objeto?
- 13. ¿Cómo verificar si un objeto es convertible a otro tipo?
- 14. Verificar si se selecciona una página de pestañas específica (activa)
- 15. Detectar si una propiedad de objeto es privada en PHP
- 16. C# ¿Cómo puedo verificar si existe una URL/es válida?
- 17. ¿Cómo puedo verificar si existe un objeto en un determinado índice de un NSMutableArray?
- 18. ¿Debo verificar si un objeto es nulo primero o segundo?
- 19. ¿Cómo obtener instancia de una clase específica en PHP?
- 20. ¿Cómo podría saber si un objeto se deriva de una clase genérica específica?
- 21. ¿Cómo puedo saber si una clase es específica de WSS o MOSS?
- 22. ¿Cómo puedo verificar si una lista contiene un objeto de cierto tipo? C#
- 23. ¿Cómo puedo verificar si un identificador de MATLAB es válido?
- 24. ¿Cómo puedo verificar si un objeto es nulo en ruby on rails 2?
- 25. Determinar si una clase implementa una interfaz muy específica
- 26. ¿No es un iterador en C++ una especie de puntero?
- 27. ¿Cómo puedo verificar si un valor es un número?
- 28. jQuery: compruebe si un objeto tiene clase
- 29. ¿Cómo verificar si un objeto está definido?
- 30. ¿Cómo puedo verificar si puedo llamar a host() en un objeto URI en Perl?
+1 para una explicación más detallada. –
@Pekka: Gracias ;-) He editado de nuevo, para proporcionar un ejemplo ^^ –
como es habitual de Pascal, respuesta de gran calidad. Gracias hombre. – openfrog