PHP: ¿cómo puede una clase hacer referencia a su propio nombre?

En PHP, ¿cómo puede una clase hacer referencia a su propio nombre?

Por ejemplo, ¿cómo sería el método para hacer esto?

Dog::sayOwnClassName();
//echos "Dog";
Actualizar

Veo que todos dicenget_class($this). Pero eso no es correcto. Eso funcionaría si estuviera creando unejemplo de perro Estoy preguntando sobre cómo llamar a un método de la clase Dog en sí. SiDog se extiendeMammal, luego una llamada aget_class($this) dentro deDog la clase devolverá 'Mammal'.

En otras palabras:

No estoy preguntando "cuál es la clase de la clase Perro", a lo que la respuesta es: "la clase Perro es miembro de la clase Mamífero".Tampoco estoy preguntando "dada una instancia de Dog the dog class (llamada Rover), ¿cuál es su clase?", A lo que la respuesta es "Dog".Lo que pregunto es: "¿Puede la clase Perro decirme 'mi nombre es Perro?'

Por ejemplo:

class Mammal {    
  public function find_by_id($id){
    $query = "SELECT * FROM " . $myclass . " WHERE `id` = " . $id;
    //(etc)
    return $matching_object;
  }
}

class Dog extends Mammal {
//find_by_id method should know to do a SELECT from Dog table     
}
Actualización 2

La sugerencia de Yacoby deget_called_class() fue correcto Así es como funciona en el ejemplo que di.

class Mammal {    
      public function find_by_id($id){
        $myclass = get_called_class();
        $query = "SELECT * FROM " . $myclass . " WHERE `id` = " . $id;
        //(etc)
        return $matching_object;
      }
    }

    class Dog extends Mammal {
    //find_by_id knows to do a SELECT from Dog table
    //and will return the correct dog object     
    }

Respuestas a la pregunta(5)

Su respuesta a la pregunta