Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Толи я тупой, толи лыжи не едут?
Форумы портала PHP.SU » » Вопросы новичков » Толи я тупой, толи лыжи не едут?

Страниц (1): [1]
 

1. nkl - 10 Июня, 2014 - 23:51:49 - перейти к сообщению
Доброго времени суток, господа ПоХаПешники. Собственно вот код:
PHP:
скопировать код в буфер обмена
  1. /* START DEBUG */
  2. print '<xmp>';
  3. var_dump($meetings)."\n";
  4. print '</xmp>';
  5. /* END DEBUG */
  6. foreach($meetings as $k => $meeting){
  7.         $first_team_score = trim($meeting['first_team_score']);
  8.         $second_team_score = trim($meeting['second_team_score']);
  9.         /* START DEBUG */
  10.         print '<xmp>';
  11.         print 'Meeting - '.$k.":\n";
  12.         print '$first_team_score = ' . $first_team_score ."\n";
  13.        
  14.         if($meeting['first_team_score']){
  15.                 print '$meeting[first_team_score]' . " - true\n";
  16.         }else{
  17.                 print '$meeting[first_team_score]' . " - false\n";
  18.         }
  19.        
  20.         if(is_int($first_team_score)){
  21.                 print 'is_int($first_team_score)' . " - true\n";
  22.         }else{
  23.                 print 'is_int($first_team_score)' . " - false\n";
  24.         }
  25.        
  26.         if($meeting['second_team_score']){
  27.                 print '$meeting[second_team_score]' . " - true\n";
  28.         }else{
  29.                 print '$meeting[second_team_score]' . " - false\n";
  30.         }
  31.        
  32.         if(is_int($second_team_score)){
  33.                 print 'is_int($second_team_score)' . " - true\n";
  34.         }else{
  35.                 print 'is_int($second_team_score)' . " - true\n";
  36.         }
  37.        
  38.         print '</xmp>';
  39. }

Ничего сложного, обычный юнит-тест для валидатора прилетающих постом данных, но вот результат работы меня, мягко говоря, вводит в ступор, и вот он:
array(2) { [1691]=> array(2) { ["first_team_score"]=> string(1) "4" ["second_team_score"]=> string(1) "3" } [1692]=> array(2) { ["first_team_score"]=> string(1) "2" ["second_team_score"]=> string(1) "1" } }
Meeting - 1691:
$first_team_score = 4
$meeting[first_team_score] - true
is_int($first_team_score) - false
$meeting[second_team_score] - true
is_int($second_team_score) - true

Meeting - 1692:
$first_team_score = 2
$meeting[first_team_score] - true
is_int($first_team_score) - false
$meeting[second_team_score] - true
is_int($second_team_score) - true

Что я делаю не так?
(Добавление)
Тупо привести переменные к int'y аля:
PHP:
скопировать код в буфер обмена
  1.         $first_team_score = (int) trim($meeting['first_team_score']);
  2.         $second_team_score = (int) trim($meeting['second_team_score']);

и потом проверять таким образом:
PHP:
скопировать код в буфер обмена
  1.         if($first_team_score > 0){
  2.                 print 'is_int($first_team_score)' . " - true\n";
  3.         }else{
  4.                 print 'is_int($first_team_score)' . " - false\n";
  5.         }
  6.         if($second_team_score > 0){
  7.                 print 'is_int($second_team_score)' . " - true\n";
  8.         }else{
  9.                 print 'is_int($second_team_score)' . " - true\n";
  10.         }

НЕ ВЫХОД ИЗ СИТУАЦИИ!
Потому что пропускать нужно числа от 0 до 99.
2. DelphinPRO - 11 Июня, 2014 - 00:53:48 - перейти к сообщению
is_numeric ?
(Добавление)
или регулярка

 

Powered by ExBB FM 1.0 RC1