Как в preg_replace_callback указать функцию в средине класса?
я делаю так:
class className {
...
function func($m) {
return "<i>".$m[1]."</m>";
}
function f() {
$txt = preg_replace_callback("/<b>(.*?)</b>/i", "func", $txt);
}
...
}
но выдает ошибку:
class className {
...
function func($m) {
return "<i>".$m[1]."</m>";
}
function f() {
$txt = preg_replace_callback("/<b>(.*?)</b>/i", "func", $txt);
}
...
}
Цитата |
Warning: preg_replace_callback() [function.preg-replace-callback]: Requires argument 2, 'func', to be a valid callback in ... |
$txt = preg_replace_callback("/<b>(.*?)</b>/i", 'self::func', $txt);
Цитата |
Warning: preg_replace_callback() [function.preg-replace-callback]: Requires argument 2, 'self::func', to be a valid callback in |
/<b>(.*?)<\/b>/i
$txt = preg_replace('/<b>(.*?)<\/b>/i', '<i>\\1</i>', $txt);
Цитата |
где в \\1 будет содержаться то, что попадет сюда (.*?) |
Цитата |
Fatal error: Call to undefined function f() in ... |
Цитата (Romms @ 25.11.2009 - 14:20) |
но я спростил условия |
class className {
// ...
static function func($m) {
return '<i>' . $m . '</i>';
}
function f($txt) {
$txt = preg_replace('/<b>(.*?)<\/b>/ie', 'self::func("\\1")', $txt);
return $txt;
}
// ...
}
$test = new className();
echo $test->f('Here <b>we</b> go!');
class className {
// ...
function func($m) {
return '<i>' . $m[1] . '</i>';
}
function f($txt) {
$txt = preg_replace_callback('/<b>(.*?)<\/b>/i', array($this, 'func'), $txt);
return $txt;
}
// ...
}
$test = new className();
echo $test->f('Here <b>we</b> go!');
class ClassName{
function fina($match) {
$mata=asd($match[1]); // ошибка сдесь
return $match[1];
}
function asd($txt) {
$txa = preg_replace_callback("/<b>(.*?)<\/b>/i", array($this, 'fina'), $txt);
return $txa;
}
function display() {
$texta="<%[0]<b></b>%>";
echo $this->asd($texta);
}
}
$class=new ClassName();
$class->display();
Цитата |
Fatal error: Call to undefined function asd() in Y:\home\2list.phpforum.ru\www\t\t\t\test\T\list-functions.php on line 4 |
Цитата (Romms @ 26.11.2009 - 13:11) |
прошу помощи... почему ошибка? |