從性能的角度來看,我應該選擇:反思:: hasMethod與method_exists性能
$className = 'Foobar';
$methodName = 'method';
這
$Reflected = new ReflectionClass($className);
$result = $Reflected->hasMethod($methodName);
在
$result = method_exists($className,$method);
爲什麼呢?
對於這種情況,我沒有使用ReflectionClass的任何其他屬性或方法。
反射總是比檢測方法是否定義的本地PHP方法慢。不知道它在PHP中有多糟糕,但是在Java反射中卻像地獄一樣緩慢......而且你總是可以自己做一些調試......做兩個10000次重複的循環,其中第一次循環測量反射時間並在第二次測量'method_exists'的時間...然後比較和完成... – shadyyx
爲什麼你不只是測量哪個更快? – Jon
單個檢查使用ReflectionClass過度使用。當你對課程進行復雜的檢查時使用它 –