PHP:test ==当他不应该返回false时

时间:2013-06-03 18:12:50

标签: php symfony symfony-2.2

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

所以请帮助我,我是非常聪明的用户,我真的不知道那里发生了什么..

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 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

在测试之上,添加:

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

看看结果是否匹配

这对我来说似乎不对:

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

$services包含哪些内容?