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 :: Версия для печати :: in_array - объясните недалёкому логику выполнения
Форумы портала PHP.SU » PHP » Программирование на PHP » in_array - объясните недалёкому логику выполнения

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

1. _kT - 14 Января, 2011 - 05:11:55 - перейти к сообщению
почему собственно работает именно так

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. if(in_array('dsfdf',array(0)))
  3. {
  4.     print 'это работает';
  5. }
  6. if(in_array('123',array(0)))
  7. {
  8.     print 'это не работает';
  9. }
  10.  
2. Ch_chov - 14 Января, 2011 - 05:33:26 - перейти к сообщению
Это особенность преобразования типов данных в PHP
PHP:
скопировать код в буфер обмена
  1. echo (int)('dsfdf'); // Выведет 0
  2. echo (int)('123');   // Выведет 123


Можно использовать более строгий поиск
PHP:
скопировать код в буфер обмена
  1. if(in_array('dsfdf', array(0), TRUE))
  2. {
  3.     print 'это теперь тоже не работает';
  4. }
3. JustUserR - 14 Января, 2011 - 15:17:02 - перейти к сообщению
_kT В действительности предполагаемая операция поиска требуемого элемента в заданном массиве включает последовательный порсмотр сохраненных значений массива на основе инкрементации внутренного индекса и выполнения операции простого сравнения с указанным искомым элементом - таким образом результат выполнения целевого поиска зависит от типов искомых информационных полей и правил автоматического приведения В частности осуществление поиска true значения в массиве приведет в значению истины - в случае если массив содержит элементы отличные от false-трактуемых значений

 

Powered by ExBB FM 1.0 RC1