2013-06-03 89 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。感謝你,我不瞭解我的問題。哈哈哈哈,所以沒錯!謝謝 ! –

相關問題