php - 计算数组的元素

时间:2010-11-10 16:13:57

标签: php phpunit

我想知道最终取得了多少成功,但我失败了。我想使用数组函数,但我不知道如何从这里继续:

public function array_internal($the_string)
$pass=  Array();
$failed = Array();
  if(strstr($the_string,"Success"))
    {
        $pass[] = +1;
    }
  else
    {
        $failed[] = +1;
    }

count($pass);

此步骤正在运行每个断言函数,如下所示:

 try {
      $this->assertEquals("off", $this->getValue("page"));
      throw new PHPUnit_Framework_AssertionFailedError("Success");
    } catch (PHPUnit_Framework_AssertionFailedError $e) {
      $this->array_internal($e->toString());
    }

功能本身还可以。我的问题只出在柜台上。

谢谢!

修改 我试着做这样的事情:

$pass= 0;
$failed = 0;
public function array_internal($the_string)

  if(strstr($the_string,"Success"))
    {
        $pass += 1;
    }
  else
    {
        $failed += 1;
    }

$pass;

5 个答案:

答案 0 :(得分:2)

除了计数之外,你没有对数组做任何事情,所以为什么不使用整数呢?

$pass= 0;
$failed = 0;


public function array_internal($the_string)

  global $pass, $failed;

  if(strstr($the_string,"Success"))
    {
        $pass += 1;
    }
  else
    {
        $failed += 1;
    }

}

答案 1 :(得分:2)

为什么不将全局变量用作$pass$fail,您可以按$pass++$fail++增加?

答案 2 :(得分:1)

public function array_internal($the_string)
$pass=0;
$failed=0;
if (strstr($the_string,"Success"))
{
    $pass += 1;
}
else
{
    $failed += 1;
}

答案 3 :(得分:1)

$pass[] = +1$pass数组中创建一个新的键值对,并将1添加到新值。这可能不是你想要做的。请参阅其他答案,了解您的目标。

答案 4 :(得分:0)

$pass=  Array();
$failed = Array();

创建新的数组实例。函数array_internal的返回值始终为0或1.您也永远不会使用$failed

一个更简单的功能是:

public function array_internal( $the_string )
  $pass = 0; 
  if( strstr( $the_string, "Success" ) )
  {            
      $pass = 1;
  }
  return $pass;
}
像哈门说的那样,你需要使用一个外部的int计数器。与Harmen不同,我会尝试尽可能不使用全局变量,而是使用类变量来限制它的范围。

可能是类TestClass的静态变量,称为$passes,如:

TestClass::$passes += $this->array_internal($e->toString());