これが正しく行われたかどうかはわかりません。
私が理解しているように:
クラスfooと静的メソッドバーがあれば、関数名として配列array("foo","bar")
を渡すことでそれをコールバックとして登録できます。
$ fooにクラスのインスタンスがあり、メソッドバーを呼び出したい場合は、配列array($foo,'bar')
を渡します。
クラス自体の中にアクションを登録する必要がある場合、それはarray($this,'bar')
で動作しますか?
クラス自体の中にアクションを登録する必要がある場合、それは
array($this, 'bar')
で動作しますか?
はい、うまくいきます。 $this
ドキュメント は callback に必要な具象インスタンスを参照しています。それは$foo
の例とまったく同じです。それは$this
がもう少し特別であるということだけです、しかしそれは基本的に同じを表して、それはPHPのコールバックで完璧に動作します。
追加:
クラスfooと静的メソッドバーがあれば、関数名として配列
array("foo","bar")
を渡すことでそれをコールバックとして登録できます。
はい、できます。静的関数の場合は、配列ではなく文字列としても記述できます。foo::bar
、 Callbacksを参照してください。 ドキュメント 。便利かもしれません。
静的メソッドの場合、これを行うこともできます。
['foo','bar']
以下が 未定義のクラス定数 'bar' を与えるとき - /:
foo::bar
例 - wp_add_dashboard_widget
に$ control_callbackを指定した場合