ホームページ > バックエンド開発 > PHPチュートリアル > preg_replace_callback関数に関する質問

preg_replace_callback関数に関する質問

WBOY
リリース: 2016-06-23 13:29:16
オリジナル
951 人が閲覧しました


それは PHP マニュアルの preg_replace_callback 関数の例 3 です
出力

この $input で何が起こっているのでしょうか? is_array($input) は配列ではありません。次の HTML 形式が出力されるのはなぜですか?さらに、if(is_array($input)) ステートメントを削除すると、ブラウザ Firebug の http ステータス コードが Aborted と表示されます。

式の $limit と &$count とは何ですか?百度では利用できませんか?ケースはありませんが、テスト後はあまり明確ではありません


ディスカッション (解決策) への返信

は事前に質問する必要があります、疑いの余地はありません
if (is_array ($ input)) {// If $ inputは配列です
input = '

'.$input[1].'
'; //$input は文字列に処理されます
}

最後の質問はマニュアルにあります
制限
各パターンの各対象文字列の置換の最大数

count
指定されている場合、この変数には次の値が設定されます。実行された置換の数
置換の数を記録します

前の質問に疑問の余地はありません
if (is_array($input)) { // $input が配列の場合
$input = '

'.$input[1].'
'; //その後、$input が文字列に処理されます
}

最後の質問は、マニュアルに記載されています。
制限
各モードで、各対象文字列の置換の最大数を使用します。

count
指定した場合、この変数には実行された置換の数が入力されます。置換の数


しかし、 $input = "plain [indent] deep [indent] Deep [/indent] deep [/indent] plain"; 配列配列ではないのに、なぜ文字列を出力できるのですか
return preg_replace_callback($regex, 'parseTagsRecursive', $input);

このステートメントでは、$input は文字列であるべきではないでしょうか?

return preg_replace_callback($regex, 'parseTagsRecursive', $input);

このステートメントでは、$input は文字列であるべきではないでしょうか?

私が言いたいのは
if (is_array($input)) {
$input = '
'.$input[1].'
' ;
}
$input は配列ではありませんが、なぜ $input = '
'.$input[1].'
' を出力できるのでしょうか。この形式

$input = '
'.$input[1].'
'; は代入です。


$input を配列から文字列に変更するだけです

ありがとう、$input が再帰で完全に一致することを理解しました。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート