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. dcc0 - 28 Августа, 2014 - 20:40:21 - перейти к сообщению
Набрел на такую тему:
http://forum.php.su/topic.php?fo...1&topic=4849
У меня немного другое:
PHP:
скопировать код в буфер обмена
  1.  $var=999;
  2.  
  3.  if(is_int($var)) {
  4.  
  5. echo "Yes";
  6.  
  7.  }
  8.  else  {
  9.  
  10. echo "Something";
  11. }
  12.  

Работает.

Но, допустим, делаю рекурсивную функцию.
И без settype после вычисления квадратного корня проверка уже не проходит,
даже при числе, из которого корень вычисляется нацело. Возвращаю settype и меняю число, которое дает остаток, проверка работает.

cut
2. caballero - 28 Августа, 2014 - 20:48:38 - перейти к сообщению
is_numeric()
3. RickMan - 28 Августа, 2014 - 21:00:11 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function sqt($d)  {
  3.     $var=sqrt($d);
  4.  
  5.     if (!fmod($var, 1)) {
  6.         echo $var;
  7.     }else{
  8.         sqt($d-1);
  9.     }
  10. }
  11.  
  12. sqt(64);
  13. ?>
  14.  


Я так понимаю вам скорее всего такой код нужен. Ваш is_int всегда будет срабатывать так как сразу же перед ним вы даете переменной тип int.
4. dcc0 - 28 Августа, 2014 - 21:06:42 - перейти к сообщению
Все, понял, sqrt всегда возвращает float, а pow только при большой степени float... долго же это до меня доходило...

RickMan, да-да, не додумал и перемудрил...
Спасибо.

Вообще, наверное, что-то такое я хотел: Хорошо
Спойлер (Отобразить)

 

Powered by ExBB FM 1.0 RC1