質問: Wordpressの某プラグインのソースを読んでいたところ、理解できない部分があり質問します ``` if (!class_exists('wpCommentAttachment')){ class wpCommentAttachment { //中略 public function __construct() { //中略 add_action('plugins_loaded', array($this, 'loaded'));//*1 //中略 } public function loaded(){//*2 //中略 } //中略 } } ``` 全体としては上記のようなwpCommentAttachmentというクラスの定義ファイルなのですが、 その中で *1 の部分の ``` array($this,'loaded') ``` という表記がわかりません add_actionというWP関数は第二引数に実行したい関数名を記述するのが通常です 上記の処理でも結果として、plugin_loadedのタイミングで *2のfunction loadedが実行されるのですが なぜこのような記述になっているのでしょうか array()の要素1つ目に$this、2つ目に'関数名'とする処理を初めてみたこともあり理解できずにいます このarray()の書式についての説明のあるページなど教えてもらえると嬉しいです よろしくお願いします
回答: PHPでコールバックを指定する場合に、インスタンスメソッドを渡したい場合には、`array(オブジェクト, 'メソッド名')`の配列とします。 コールバック / Callable(PHPマニュアル)