Averigua si existe un método en una clase estática.

Quiero verificar si existe una función en una biblioteca que estoy creando, que es estática. He visto la función y method_exists, pero no he encontrado una manera que me permita llamarlos en un contexto relativo. Aquí hay un mejor ejemplo:

class myClass{
    function test1()
    {
        if(method_exists("myClass", "test1"))
        {
            echo "Hi";
        }
    }
    function test2()
    {
        if(method_exists($this, "test2"))
        {
            echo "Hi";
        }
    }
    function test3()
    {
        if(method_exists(self, "test3"))
        {
            echo "Hi";
        }
    }
}
// Echos Hi
myClass::test1();
// Trys to use 'self' as a string instead of a constant
myClass::test3();
// Echos Hi
$obj = new myClass;
$obj->test2();

Necesito poder hacer la prueba 3 echo Hi si la función existe, sin tener que sacarla del contexto estático. Dada la palabra clave para acceder a la clase debe ser 'self', ya que $ es para las clases asignadas.

Respuestas a la pregunta(3)

Su respuesta a la pregunta