PHPでPythonのdirみたいな感じでクラスのメソッドを調べたいって時

PHP

PHPでクラスのメソッドを調べたい

PHPでプログラミングをしていて、このクラスってどんなメソッドあったっけ?って時がありますよね。

確かPythonだと、dir()で調べられたんだけど…

って時がありましたので、備忘録として記載しておきたいと思います。

同じ症状になってこの記事にたどり着いたみなさんも参考にしてください!

 

PHPではget_class_methodsを使用する

答えだけ知りたい人のために先に結論から書いておきます。

PHPでは、このようにget_class_methodsでメソットを調べることができます。

 

get_class_methods('クラス');
または
get_class_methods(new クラス());

※PHPの公式サイトはこちらです。

 

PHPのget_class_methodsとPythonのdirをそれぞれ使ってみる!

それではPHPのget_class_methodsを使ってみましょう!

試しに適当にクラスを作成して、get_class_methodsで表示して見た結果がこちらになります!

 

<?php

class Hoge {
    private $name;

    public function __construnct($name) {
        $this->name = $name;
    }

    public function sayHoge() {
        var_dump("hogehoge");
    }

    public function sayName() {
        var_dump("hogehoge " . $this->name);
    }
}


$hoge1 = new Hoge("Hoge Sama");

var_dump(get_class_methods($hoge1));

 

結果

array(3) { [0]=> string(12) "__construnct" [1]=> string(7) "sayHoge" [2]=> string(7) "sayName" }

 

 

今度はPythonのdirを使ってみましょう!

こちらも同様に、適当にクラスを作成し、dirで表示してみました!

class Hoge:
    def __init__(self, name):
        self.name = name
    def say_hoge(self):
        print("hogehoge")
    def say_name(self):
        print("hogehoge " + name)

hoge1 = Hoge("Hoge Sama");

print(dir(hoge1))

 

結果

['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'name', 'say_hoge', 'say_name']

 

 

コメント