私にはわかりませんが、私のコードにどのように影響するかを知りたいと思っています。私が知る限りでは、コードは動作し、すべてがそうであるように見えます。 私はWordPressの設定で作業していますが、WordPressに厳密に関係なく、匿名関数を使用する方法についての誤解であると私には思われます。 しかし、これが状況です。標準のページを作成するいくつかのメソッドを持つクラスがありますが、そのクラスのいくつかのインスタンスに対して繰り返す必要があります。クラスメソッドはページの内容を返し、正しく動作します。 私はwordpressの管理者メニューにこれらのページを追加するために、通常、私は単にそれが空白につながるので、この場合には機能は、代わりにそれをエコーの内容を返します。しかし、php警告:{closure}()の引数2がありません
$t = new My_Class();
//the method of the class that generates the content
$function_name = "foo";
add_submenu_page($parent_slug, $title, $menu_title , 'manage_options', $function_name, array($t, $function_name));
関数を呼び出しますしたいですページ。だから私が言ったように私はこの
add_submenu_page($parent_slug, $title, $menu_title , 'manage_options', $function_name, function ($t, $function_name) use ($t, $function_name) {
echo $t->$function_name();
});
を試みたが、これは動作しますが、それはその警告を生成し、それは私が何か間違ったことをやっているなら、私は疑問に思うか、私は望ましくない可能性につながるので(コードがやっていることを誤解していた場合に作られました将来の行動)。
PS:私は知らない単純に、もう一方のコンテンツをエコーする新しいメソッドを追加するか、コンテンツを返す代わりにそのコンテンツをエコーするパラメータを追加することができます。しかし、私はむしろ問題があればそれが何であるかを理解したいと思う。 、そのエラーメッセージを取り除くために
で「注入された」あなたは同じ変数名を持っている、とあなたは変数でそれらを上書きするので、最後にそれが動作します$ t'と$ function_name' **両方をパラメータとして取得しキャプチャしますか?それはどちらか一方でなければなりません。 –
私はそれが何を意味するのか分かりません。 – DavidTonarini