函數(shù):ReflectionClass::getMethod()
適用版本:PHP 5+
用法: ReflectionClass::getMethod() 方法用于獲取指定類中的方法的反射類實(shí)例。
語(yǔ)法: public ReflectionMethod ReflectionClass::getMethod ( string $name )
參數(shù):
- name:要獲取的方法的名稱。
返回值: 返回一個(gè) ReflectionMethod 對(duì)象,該對(duì)象表示指定類中的方法。
示例:
// 定義一個(gè)類
class MyClass {
public function myMethod() {
echo "Hello, world!";
}
}
// 創(chuàng)建 ReflectionClass 實(shí)例
$reflectionClass = new ReflectionClass('MyClass');
// 獲取指定方法的反射類實(shí)例
$reflectionMethod = $reflectionClass->getMethod('myMethod');
// 輸出方法的名稱
echo $reflectionMethod->getName(); // 輸出:myMethod
// 輸出方法是否為公共方法
echo $reflectionMethod->isPublic(); // 輸出:1 (表示是公共方法)
// 輸出方法是否為靜態(tài)方法
echo $reflectionMethod->isStatic(); // 輸出:0 (表示不是靜態(tài)方法)
// 調(diào)用方法
$myObject = new MyClass();
$reflectionMethod->invoke($myObject); // 輸出:Hello, world!
上述示例中,我們首先創(chuàng)建了一個(gè)名為MyClass的類,其中包含了一個(gè)名為myMethod的公共方法。然后,我們使用ReflectionClass類創(chuàng)建了一個(gè)反射類實(shí)例$reflectionClass來(lái)表示MyClass類。接下來(lái),我們使用ReflectionClass的getMethod()方法來(lái)獲取myMethod方法的反射類實(shí)例$reflectionMethod。
通過(guò)$reflectionMethod對(duì)象,我們可以使用一系列的方法來(lái)獲取有關(guān)該方法的信息,例如getName()方法用于獲取方法的名稱,isPublic()方法用于判斷方法是否為公共方法,isStatic()方法用于判斷方法是否為靜態(tài)方法。
最后,我們通過(guò)invoke()方法調(diào)用了myMethod方法,并輸出了該方法的結(jié)果。
請(qǐng)注意,ReflectionClass::getMethod()方法只能獲取公共方法,如果想獲取非公共方法,可以使用ReflectionClass::getMethods()方法獲取所有方法的反射類實(shí)例,然后通過(guò)循環(huán)遍歷來(lái)判斷和獲取指定方法。