我想檢查一個函數存在於我創建的庫中,它是靜態的。我見過函數和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