即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在遞迴裡是完全符合。