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

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

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

提供: WordPress Codex 日本語版
< 関数リファレンス
2014年5月17日 (土) 14:27時点におけるHissy (トーク | 投稿記録)による版 (初版)

(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

説明

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

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

使い方

%%% <?php do_action_ref_array( $tag, $arg ); ?> %%%

パラメーター

$tag
string) (必須) 実行されるアクションの名前
初期値: なし
$args
array) (必須$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' );

注意

  • This function can be useful when your arguments are already in an array, and/or when there are many arguments to pass. Just make sure that your arguments are in the proper order!
  • Before PHP 5.4, your callback is passed a reference pointer to the array. Your callback can use this pointer to access all the array elements. Adding an action and declaring a call back that hooks the above example action could look like this:
add_action('my_action', 'my_callback');
function my_callback( $args ) {
    //access values with $args[0], $args[1] etc.
}

Because the array was passed by reference, any changes to the array elements are applied to the original array outside of the function's scope.

  • Regardless of PHP version, you can specify the number of array elements when adding the action, and receive each element in a separate parameter in the callback function declaration like so:
add_action('my_action', 'my_callback', 10, 4 );
function my_callback( $arg1, $arg2, $arg3, $arg4 ) {
    //access values with $args1, $args2 etc.
}

This method copies the array elements into the parameter variables. Any changes to the parameter variables do not affect the original array.

  • As of PHP 5.4, the array is no longer passed by reference despite the function's name. You cannot even use the reference sign '&' because call time pass by reference now throws an error. What you can do is pass the reference pointer as an array element. Doing so does require all callbacks added to the action to expect a reference pointer. This is not something you will see in WordPress actions. This technique is provided for informational purposes only.
do_action_ref_array( 'my_action', array( &$args ));

add_action('my_action', 'my_callback');
function my_callback( &$args ) {
    //access values with $args[0], $args[1] etc.
}

Because the original array was passed by reference, any changes to the array elements are applied to the original array outside of the function's scope.

Change Log

Since: 2.1.0

Source File

do_action_ref_array() is located in wp-includes/plugin.php.

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

Related

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



関数リファレンステンプレートタグ目次もご覧ください。
この記事は翻訳時に編集が必要であるとマークされていました。その為Codex原文が大きく編集されている可能性があります。内容を確認される際は原文を参照していただき、可能であれば本項目へ反映させてください。よりよいCodexを作成するためのお手伝いをお願いします。