strpos не работает для определенной строки

Я пытаюсь использовать strpos, чтобы найти строку внутри другой строки, но по какой-то причине она не работает для определенной строки, даже если она работает для другой. Что я делаю неправильно?

<?php

if (strpos("show me how to dance", "show me")) {
echo "true1";
}
if (strpos("my name is name", "name")) {
echo "true2";
}

?>

Результат:

true2

Ожидаемый результат:

true1true2

1 ответ

Решение

strpos возвращает индекс вхождения в строке (или false, если он не найден). Когда этот индекс равен 0, условие: (strpos("show me how to dance", "show me")) оценивается как ложное (потому что в PHP: 0 == false правда). Чтобы быть уверенным, что игла найдена (даже с индексом 0), вам нужно использовать строгое сравнение:

if (strpos("show me how to dance", "show me") !== false)
Другие вопросы по тегам