PHPのpreg_replace_callback
「括弧で括られた中のみの空白を削除する」などやりたい場面で
preg_replace_callbackはとっても便利!
いちいち関数を分けなくとも
PHP5.3以上だったら無名関数が使えるよ
$str = preg_replace_callback('/([0-4]{3})\-([0-4]{4})/su', function($match){ //これは全体のキャプチャ $match[0] = trim($match[0]); //これは一番目のキャプチャ $match[1] = trim($match[1]); //これは二番目のキャプチャ $match[2] = trim($match[2]); //二番目のキャプチャが$strに格納されるよ return $match[2]; },$str);
class内だったらarray()に格納することで関数を呼び出すことができるよ
class hoge { function huga() { $str = preg_replace_callback('/([0-4]{3})\-([0-4]{4})/su', array($this, 'callback'), $str); } function callback($match) { return return $match[2]; } }