-1

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

所以帮助我,我对 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,
    );
}
4

2 回答 2

2

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

if( $service->getId() == $discountsID[$i] ){ //the fail test..
    $bool = $discounts[$i]->getId();      
    break;
}
于 2013-06-03T18:20:02.013 回答
0

在测试上方,添加以下内容:

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

看看结果是否匹配

这对我来说似乎也是错误的:

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

由什么$services组成?

于 2013-06-03T18:15:19.730 回答