• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

関数リファレンス/do action ref array

提供: WordPress Codex 日本語版
移動先: 案内検索

説明

特定のアクションフックに登録された関数を実行します。その際、引数を配列で受け取ります。

この関数はdo_actionと同等のものですが、$tagにフックされた関数に渡される引数は配列として渡されます。

使い方

<?php do_action_ref_array( $tag, $args ); ?>

パラメーター

$tag
文字列) (必須) 実行されるアクションの名前
初期値: なし
$args
配列) (必須$tagsにフックされる関数に渡される引数
初期値: なし

用例

アクションをコールし引数の配列を渡す:

$args = array( 'arg_1', true, 'foo', 'arg_4' );

do_action_ref_array( 'my_action', $args );

これは次のコードと同等です

 do_action( 'my_action', 'arg_1', true, 'foo', 'arg_4' );

  • この関数は渡したい引数がすでに配列である場合、あるいは渡したい引数がたくさんある場合に便利です。引数の順番を正しく指定することだけ気をつけましょう!
  • PHP5.4より前のバージョンでは、コールバック関数には配列への参照ポインタが渡されます。コールバック関数内ですべての配列要素にこのポインタをつかってアクセスできます。アクションとコールバック関数をフックに追加するには、次のサンプルのように行なえます:
add_action('my_action', 'my_callback');
function my_callback( $args ) {
    //$args[0], $args[1] などのように値にアクセスできます。
}

配列は参照で渡されているため、配列要素に対する全ての変更は、関数のスコープ外のオリジナルの配列にも適用されます。

  • PHPのバージョンに関わらず、配列要素の数をアクションに追加する際に指定することで、次のようにそれぞれの要素をばらばらのパラメーターとして定義してコールバック関数内で受け取ることができます:
add_action('my_action', 'my_callback', 10, 4 );
function my_callback( $arg1, $arg2, $arg3, $arg4 ) {
    //$args1, $args2 などのように値にアクセスできます。
}

この方法は配列要素をパラメーターの値にコピーします。パラメーターの値に対する全ての変更は、オリジナルの配列に影響を与えません。

  • PHP5.4では、関数の名前に反して、配列は参照で渡されません。call time pass by referenceがエラーになるようになったため、参照のサイン「&」も使うことはできません。方法としては、配列要素を参照渡しするしかありません。そうする場合、このアクションに追加された全てのコールバックは参照ポインタを期待する必要があります。これはあまりWordPressのアクションでは見かけないと思いますので、このテクニックはあくまで参考として提供します。
do_action_ref_array( 'my_action', array( &$args ));

add_action('my_action', 'my_callback');
function my_callback( &$args ) {
    //$args[0], $args[1] などのように値にアクセスできます。
}

配列は参照で渡されているため、配列要素に対する全ての変更は、関数のスコープ外のオリジナルの配列にも適用されます。

更新履歴

導入: 2.1.0

ソースファイル

do_action_ref_array()wp-includes/plugin.phpにあります。

関連項目

アクション: has_action(), add_action(), do_action(), do_action_ref_array(), did_action(), remove_action(), remove_all_actions()



関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Function Reference/do_action_ref_array最新版との差分