PHP: call_user_func_array

call_user_func_array

PHP: call_user_func_array – Manualより。

call_user_func_arrayパラメータの配列を指定してコールバック関数をコールする

使ったとこ

textareaに入力されたカンマ区切りのデータで、

  • 全角スペース → 半角スペース
  • 半角スペース → 削除

の行程を機能として関数に分け、都度配列を引数で渡す。

[php]
<?php

function __construct() {

$options = get_option( ‘post_notifier_settings’ );
$emails = explode( ‘,’, trim( $options[ ‘email_field’ ] ) );

call_user_func_array( array( $this, ‘check_email’ ), array( $emails ) );
………..
………..

}

/**
* @param $emails
* @return mixed
*/
public function check_email( $emails ) {

$e = new WP_Error();
$shaped_emails = array();

foreach( (array)$emails as $email ) {

$email = trim( mb_convert_kana( $email, ‘s’ ) );

if( empty( $email ) ) {
$email = get_option( ‘admin_email’ );
return $email;
} else {
$shaped_emails[] = $email;
}

if( ! is_email( $email ) ) {

$e->add(
‘error’,
__( ‘メールアドレスを確認してください。’ )
);
set_transient( ‘my-custom-admin-errors’, $e->get_error_messages(), 10 );
add_action( ‘admin_notices’, array( $this, ‘my_admin_notices’ ) );
}
}
return implode( ‘,’, $shaped_emails );
}
[/php]
便利っすな〜 🙂