匿名のpreg_replace_callback関数の外で初期化された配列に書き込もうとしています。私は "使用"キーワードを試して、また変数 "グローバル"を宣言しても、どちらもうまくいかないようです。ここでPHPの配列への書き込みアクセスを許可するpreg_replace_callback
は私のコードです: "置き換え$" の
$headwords=array_keys($dict);
$replaced=array();
// Scan text
foreach($headwords as $index=>$headword){
if(preg_match("/\b".$headword."\b/", $transcript)){
$transcript=preg_replace_callback("/(\b".$headword."\b)/", function($m) use($index, $replaced){
$replaced[$index]=$m[1];
return "<".$index.">";
}, $transcript);
}
}
のvar_dumpは空の配列としてそれを示しています。 preg_replace_callbackループは、パブリッククラス関数の一部です(違いがあれば)。
私はこの問題をGoogleで検索しましたが、成功しませんでした。 この問題の助けを借りて非常に感謝します。
どのようなPHPバージョンをお使いですか? –