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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Толи я тупой, толи лыжи не едут?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Помогите разобраться, я в тупике, неадекватное поведение PHP.
nkl
Отправлено: 10 Июня, 2014 - 23:51:49
Post Id



Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Янв. 2012  


Помог: 1 раз(а)




Доброго времени суток, господа ПоХаПешники. Собственно вот код:
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.

(Отредактировано автором: 11 Июня, 2014 - 00:10:43)

 
 Top
DelphinPRO
Отправлено: 11 Июня, 2014 - 00:53:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




is_numeric ?
(Добавление)
или регулярка


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB