2008年7月26日土曜日

PHPでオブジェクトのメソッド一覧を取得する方法

JavaScriptではfor inで取れますが、PHPではget_class_methods関数を使うことでできます。ただしpublicメソッドのみ。ちなみにpublicプロパティを取得するにはget_object_vars関数を使います。

サンプルコードと結果

<?php
class Foo
{
   function __constructor () { return 0; }
   public function add( $a, $b )
   {
       return $a + $b;
   }

   
   private function _privateMethod()
   {
        return -1;
   }

   public static function isPostcode ( $postcode )
   {
       return preg_match( '/^\d{3}-\d{4}$/', $postcode ) ? true : false;
   }
}

$methods = get_class_methods( new Foo() );
foreach( $methods as $method_name ) {
    echo $method_name,"\n";
}
#結果
__constructor
add
isPostcode

こういうことする手間自体が無駄なので、PHP Docでクラスのマニュアルは作成しておくのがベストだと思います。

0 件のコメント: