vistas una tablas recomendaciones queries porque optimizador lentas lenta las dañan cuello consulta consejos como botella agilizar php

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í:

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.