private function Photo($m,$photo){
if($m == 'print'){
print $photo; // or echo
}
else {
return $photo;
}
}
private function GetText(){
...
...
$i = $res->fetch_assoc();
$Text = $i["Text"];
Now `$Text` have next:
html text
....
<p>%photo(2)%</p>
<p>%photo(3)%</p>
<p>%photo(4)%</p>
...
html text
echo $Text;
}
我想在函数%photo(N)%
(或函数N
)上替换文本Photo($m,N)
(其中Photo(N)
- 任意数字)。
为此,我使用代码:
$Text = preg_replace_callback("/\{photo\((\d+)\)\}/","Photo",$Text);
但它不起作用......
请告诉我怎么做?
P.S。:在替换$Text
后,我的例子应该是下一个:
html text
....
<p>2</p>
<p>3</p>
<p>4</p>
...
html text
答案 0 :(得分:1)
Photo
是类的方法,而不是函数本身。
尝试:
$Text = preg_replace_callback("/\{photo\((\d+)\)\}/",array($this,"Photo"),$Text);
有关callable
typehint的更多信息,请查看documentation。