2015年2月18日水曜日

メソッドのオーバーライド時のエラーを回避する

とあるメソッドをオーバーライドしたとき

Declaration of %s::%s() should be compatible with that of %s::%s()

というエラーが発生しました。

これは親クラスのメソッドと引数が異なるのが原因でした。
http://www.1x1.jp/blog/2007/11/php_e_strict_message.html

しかし
親クラス
public function getUserInfo( $a ){

子クラス
public function getUserInfo( $a, $b = NULL, $c = NULL ){

のようにデフォルト値を持つ引数は追加できるのでこの方法で回避できます。

2015年2月16日月曜日

Ajax通信のsuccess時に自身の関数に返す処理


successに自身の関数を呼び出せばいいようです。

//コールバック
function result_test_callback(result){

  $('#result_site_patrol_message_member').html(result);

  $('input:button[name=shuffle_message_member]').click(function(){

    if (confirm('再抽選を実行してよろしいですか?')) {

      if(xhr_shuffle){
        xhr_shuffle.abort();
      }

      xhr_shuffle = $.ajax({
        url  : url,
        type : "post",
        processData : false,
        data : post_data,
        dataType : "json",
        async : false,
        cache : false,
        success : result_test_callback ←これ 
            });

   }
 });

}