Find out if a method exists in a static class

Update:

Ahh, apologies. I was temporarily blind :) You'll want to use the magic constant __CLASS__

e.g.

if (method_exists(__CLASS__, "test3")) { echo "Hi"; }

static::class is available since PHP 5.5, and will return the "Late Static Binding" class name:

class myClass {
    public static function test()
    {
        echo static::class.'::test()';
    }
}

class subClass extends myClass {}

subClass::test() // should print "subClass::test()"

get_called_class() does the same, and was introduced in PHP 5.3

class myClass {
    public static function test()
    {
        echo get_called_class().'::test()';
    }
}

class subClass extends myClass {}

subClass::test() // should print "subClass::test()"

The get_class() function, which as of php 5.0.0 does not require any parameters if called within a class will return the name of the class in which the function was declared (e.g., the parent class):

class myClass {
    public static function test()
    {
        echo get_class().'::test()';
    }
}

class subClass extends myClass {}

subClass::test() // prints "myClass::test()"

The __CLASS__ magic constant does the same [link].

class myClass {
    public static function test()
    {
        echo __CLASS__.'::test()';
    }
}

class subClass extends myClass {}

subClass::test() // prints "myClass::test()"

Tags:

Php

Object

Static