Использование preg_replace_callback в методе класса

<?php
/**
 * Использование preg_replace_callback в методе класса
 * автор: Nc_Soft
 * 03.01.09
 */

/*
Предположим, что надо сделать замену для смайлов
смайлы будут иметь вид <ЧИСЛО> и заменять это будем на <img src="/smile/ЧИСЛО.jpg" alt="" />
доп условия:
	-число замен не более 3
	-число в смайле должно соответствовать некоторому условию (в примере это диаппазон от 1 до 15)
*/

class Smile {

	//учитываем число замен
	private $smiles=0;

	//функция печати смайлов
	 function print_smiles($text) {
		return preg_replace_callback('|<(\d+)>|',array($this,'scb'),$text);
	}

	//функция обратного вызова для регулярки
	private function scb($v) {
		if ($this->smiles<3 && $v[1]>=1 && $v[1]<=15) {
			$this->smiles++;
			return '<img src="/smile/'.$v[1].'.jpg" alt="" />';
		}
		return $v[0];
	}
}

//пример
$s=new Smile();
echo $s->print_smiles('<1> <23><3><5><4>');

?>