0

以下は、次のスクリプトを実行したときに、比較の失敗のために$flagがエコーしないという1つの問題に直面している私のコードです。これを修正する方法を教えてください。

$s = "iph4on comes";
$se = "4gb comes in iphone";
$f = 0;

$tf = explode(" ",$searching);
$ms= explode(" ",$search_in);
foreach($tf as $word)
{
if (!preg_match("/$word/i", $search_in))
//if (!strpos($search_in, $word));
return false;
}
{
$f = 1;
}
echo $f;

//Due to return flase above i am not echoing
echo "Comparison Failed";
4

3 に答える 3

3

return現在実行中のコードブロックを終了し、そのコードと呼ばれるものに「戻り」ます。コードのトップレベルでリターンを実行する場合、それは本質的にexit()呼び出しであり、エコーに到達することはありません。

于 2012-11-27T16:44:15.473 に答える
0

echo $flagなぜreturnステートメントの前に単に置くのではないのですか?

if (!preg_match("/$word/i", $search_in)){
  echo $flag
  return false;
}
于 2012-11-27T16:44:47.720 に答える
0

echoの前に置く必要がありreturnます。return実行を呼び出し元の関数に戻すため、それ以降のコードは実行されません。

 if (!preg_match("/$word/i", $search_in)) {
  $flag = 1;
  echo $flag;
  echo "Comparison Failed"; 
  return false;
 }
于 2012-11-27T16:47:08.303 に答える