2013-06-03 59 views
-1

我正在使用symfony2,我真的不明白这是怎么回事。 我有一个==测试,在他应该的时候不会返回true!在那个foreach的第一次迭代中,测试的答案==有一次是真的,但是在第一次foreach迭代之后,他没有找到另一个匹配...我尝试了很多var_dump,并且var_dump声明:$ service-> getId()是int(24),$ discountsID是int(24),但是==测试不是真正。PHP:test ==当他不应该返回false时

那么帮助我,我很小白用PHP,我真的不明白什么的发生有..

foreach ($services as $service) { 
    for ($i = 0; $i < count($discountsID); ++$i) { 
     if ($service->getId() == $discountsID[$i]) { //the fail test.. 
      $bool = $discounts[$i]->getId(); 
     } else { 
      $bool = -1; 
     } 
    } 

    $view_data['services'][] = array(
     'discountId' => bool, 
    ); 
} 
+2

当他不应该?你怎么知道** PHP **是男性? – samayo

+1

你的数组是错误的;你将值设置为'bool'而不是'$ bool' – andrewsi

+4

我喜欢'var_dumb()'!!! – gkalpak

回答

0

以上的测试中,补充一点:

var_dump($service->getId()); 
var_dump($discountsID[$i]); 
die(); 

而且看看结果匹配

而且这似乎是我错了:

foreach ($services as $service) { 
$service->getId() 

$services由什么组成?

+0

是的,bool在我的项目中是$ bool。 我已经完成了这些测试,并且我看到了匹配答案。但是==返回false .. $ services是一些服务的列表。 $折扣是折扣列表。 和一个服务可以有一个折扣。 我想给这个阵列那些打折的ID(如果服务有一个) –

+0

如果你已经看到了100%匹配,则if语句不会有错。就像上面说的那样,''discountId'=> bool,'应该是''discountId'=> $ bool,'。这可能是错误。 – Richard

2

您可能还希望在您的for中包含一个条件,以终止达到if条件的循环。许多人不喜欢休息(我都不喜欢),但这会起作用:

if($service->getId() == $discountsID[$i]){ //the fail test.. 
    $bool = $discounts[$i]->getId();  
    break; 
} 
+0

浩神!!!!!!谢谢sooooo muchhhh brooooo。感谢你,我不了解我的问题。哈哈哈哈,所以没错!谢谢 ! –

相关问题