2013-06-03 3 views
-1

Я работаю с symfony2, и я действительно не понимаю, что с ним происходит. У меня есть тест ==, который не возвращает истину, когда он должен! При первой же итерации этого foreach, для ответа на один из ответов на игру один раз верно, но после первой итерации foreach он не находит другое совпадение ... Я пробовал много var_dump, и var_dump говорит, что: $ service-> getId() - int (24), а $ discountID - int (24), но критерий == is правда.PHP: test == return 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 в моем проекте. Я сделал эти тесты, и я видел ответ матча. Но == return false .. $ services - это список некоторых сервисов. $ скидки - это список скидок. И один сервис может иметь одну скидку. Я хочу дать этому массиву идентификатор скидки (если у него есть услуга) –

+0

Если вы видели 100% -ное совпадение, то оператор if не будет ошибочным. Как сказано выше, '' discountId '=> bool, 'должно быть' 'discountId' => $ bool,'. Это может быть ошибка. – Richard

2

Возможно, вы также захотите включить в это условие условие, для которого завершается цикл, в котором выполняется условие if. Многим не нравится перерыв (я тоже не делаю), но это будет работать:

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

ho god !!!!!! спасибо sooooo muchhhh brooooo. Благодаря вам я понимаю свою проблему. HAHAHAHAHA, так что ошибка noob! Благодаря ! –

Смежные вопросы