我想检查一个函数存在于我创建的库中,它是静态的。我见过函数和method_exists,但还没有找到一种方法可以让我在相对上下文中调用它们。这里有一个更好的例子:找出一个方法是否存在于一个静态类
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();
我需要能够使测试3回声嗨,如果函数存在,而不需要将其取出静态文本。鉴于用于访问类的关键字应该是'self',因为$用于分配的类。
为什么test1()方法不够? – gapple 2009-07-21 00:19:06
因为我想把它放到一个将被多个类扩展的类中。我可以用一个魔术常数来实现这一点,但应该有一个更简单的方法。 – 2009-07-21 00:31:53