foreach
を使用して、指定された文字列に配列の単語が含まれているかどうかを判断する関数を作成しようとしています。私はforeach
の後にecho "iteration...<br>";
を入れてデバッグしようとしました。何回ループするのか見ることができます。繰り返しループしているようには見えないので、設定した方法に問題があると思われます。foreach
多分私の配列。何か案は?ありがとう。このforeachの何が問題なのですか?
$badwords = array("example", "word");
function containsBad($st) {
$isbad = false;
foreach($badwords as $word) {
echo "iteration...<br>";
if (strpos($st, $word)) {
$isbad = true;
}
}
return $isbad ? 'true' : 'false';
}
echo containsBad("example");
'$ badwords'はグローバルです。関数に 'global $ badwords;'を追加する必要があります。 –
'strpos()'は0(キーワードが見つかった場合)またはfalse(見つからない場合)を返すことができます。[PHP Docs](http://uk1.php.net/manual/)に大きな警告があります。 en/function.strpos.php)を使用して関数を正しく使用する方法を説明します –