Heim > Backend-Entwicklung > PHP-Tutorial > 有关preg_replace_callback函数的问题

有关preg_replace_callback函数的问题

WBOY
Freigeben: 2016-06-23 13:29:16
Original
969 Leute haben es durchsucht


即php手册preg_replace_callback函数例3
输出

这个$input是怎么回事?is_array($input)不是数组为什么会输出下面的html格式?而且去掉if(is_array($input))语句后浏览器firebug 的http状态码出现Aborted。

表达式里的$limit和&$count各是什么?百度不到?没有案例,测试后不是很清楚


回复讨论(解决方案)

前一问,应该没有疑问
    if (is_array($input)) { //如果 $input 是数组
        $input = '

'.$input[1].'
'; //则将 $input 处理成字符串
    }

后一问,手册里已经说清楚了
limit 
对于每个模式用于每个subject字符串的最大可替换次数. 默认是-1(无限制). 

count 
如果指定, 这个变量将被填充为替换执行的次数. 
记录替换的次数

前一问,应该没有疑问
    if (is_array($input)) { //如果 $input 是数组
        $input = '

'.$input[1].'
'; //则将 $input 处理成字符串
    }

后一问,手册里已经说清楚了
limit 
对于每个模式用于每个subject字符串的最大可替换次数. 默认是-1(无限制). 

count 
如果指定, 这个变量将被填充为替换执行的次数. 
记录替换的次数

但是$input = "plain [indent] deep [indent] deeper [/indent] deep [/indent] plain";不是数组array,为什么还会可以输出字符串

return preg_replace_callback($regex, 'parseTagsRecursive',  $input);
在这个语句中,$input 不应该是字符串吗?

return preg_replace_callback($regex, 'parseTagsRecursive',  $input);
在这个语句中,$input 不应该是字符串吗?


我的意思是说
if (is_array($input)) {
        $input = '
'.$input[1].'
';
    }
$input不是数组array,为什么还能输出 $input = '
'.$input[1].'
';这种格式

$input = '

'.$input[1].'
';
是赋值!

就是将 $input 从数组变成了字符串

谢谢,明白了$input在递归里是完全匹配。

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage