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
Форумы портала PHP.SU » » Вопросы новичков » Операторы сравнения в PHP

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

1. dcc0 - 04 Сентября, 2014 - 20:02:51 - перейти к сообщению
Товарищи, правильно ли я понимаю, что конструкции ниже должны давать эквивалетный результат:

PHP:
скопировать код в буфер обмена
  1. if(strrpos($var, "sm")!== false)
  2.  if(strrpos($var, "sm") === true)


Или вторая конструкция не имеет смысла?

Так как: "Если подстрока needle не найдена, strpos() возвращает FALSE"
2. teddy - 04 Сентября, 2014 - 20:08:47 - перейти к сообщению
dcc0 пишет:
Или вторая конструкция не имеет смысла?

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

Соответственно сравнивать с true особенно строго вообще нет смысла ибо такого значения функция не возвращает
3. dcc0 - 04 Сентября, 2014 - 20:10:41 - перейти к сообщению
teddy Спасибо. А то я что-то запутался в 3-х соснах.

Сбило меня с толку вот из описания вот это:

Цитата:
Используйте оператор === для проверки значения,
4. Tyoma5891 - 04 Сентября, 2014 - 20:12:12 - перейти к сообщению
я бы вообще советовал бы, dcc0, внимательно анализировать документацию по функциям, тогда бы и таких вопросов не возникало...
5. teddy - 04 Сентября, 2014 - 20:20:02 - перейти к сообщению
dcc0
Ну правильно. Нужно сравнивать строго, но с false.
Может быть так, что позиция, которая будет найдена, будет равна 0, что при не строгом сравнении будет равно false и Вы в этот if не попадете несмотря на то что позиция найдена.

6. dcc0 - 04 Сентября, 2014 - 21:03:19 - перейти к сообщению
teddyааа, точно. Спасибо.

 

Powered by ExBB FM 1.0 RC1