Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 什么';这辆车怎么了?_Php_Arrays_Foreach - Fatal编程技术网

Php 什么';这辆车怎么了?

Php 什么';这辆车怎么了?,php,arrays,foreach,Php,Arrays,Foreach,我试图创建一个函数,它将使用foreach来确定提供给它的字符串是否包含数组中的任何单词。我试着通过放置echo“迭代…”进行调试在foreach之后,这样我就可以看到它循环了多少次,而且它似乎从来没有开始循环,所以我假设我设置foreach或者我的数组的方式有问题。有什么想法吗?谢谢 $badwords = array("example", "word"); function containsBad($st) { $isbad = false; foreach($badwor

我试图创建一个函数,它将使用
foreach
来确定提供给它的字符串是否包含数组中的任何单词。我试着通过放置
echo“迭代…
”进行调试
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=array(“示例”、“单词”);
函数包含SBAD($st){
$isbad=false;
foreach($words作为$word){
回应“迭代…
”; if(strpos($st,$word)){ $isbad=true; } } 返回$isbad?'true':'false'; } echo containsBad(“示例”);
在使用函数之前,必须在函数中将
$badwords
变量定义为全局变量:

global $badwords;
但您的计划还有另一个改进:

  • 程序无法确定坏单词是否从字符串开头开始
  • 使用布尔变量
    $isbad
  • $badwords=数组(“示例”、“单词”)

    函数包含sbad($st)
    {
    全球美元恶言;
    $isbad=false;
    foreach($words作为$word)
    {
    回应“迭代…
    ”; if(strpos($st,$word)!==false) $isbad=true; } 返回$isbad; }
    $baddwords
    是一个全局变量。您必须添加
    global$baddwords到您的函数。
    strpos()
    可以返回0(当找到关键字时)或false(当未找到关键字时),在中有一个关于此的大警告,并解释了如何正确使用函数库。奇怪的是,你必须这样做。基本上,除了确定用户名是否包含一个坏单词之外,它不需要做很多其他事情。就
    $isbad
    而言,这是为了调试。这是我的新代码,它仍然不是最终的,只是用于调试:
    函数containsBad($st){$badwords=file(“badwords.txt”,file_IGNORE_new_行);foreach($badwords as$word){if(strpos($st,$word)==true | strpos($st,$word)>-1{返回“true”}返回“false”}echo containsBad(“test”)
    
    function containsBad($st) 
      {
      global $badwords;
      $isbad = false;
      foreach($badwords as $word) 
        {
        echo "iteration...<br>";
        if (strpos($st, $word)!==false) 
          $isbad = true;
        }
        return $isbad;
      }