Home >Backend Development >PHP Tutorial >有关preg_replace_callback函数的问题

有关preg_replace_callback函数的问题

WBOY
WBOYOriginal
2016-06-23 13:29:16947browse


即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在递归里是完全匹配。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn