я правильно использую strpos? Не получить результаты

1

У меня есть цикл php while (создание сценария поиска), и я ищу, чтобы соответствовать значениям, чтобы увидеть, какие элементы должны войти в результаты поиска. Кажется, что strpos отлично работает, пока внезапно, когда он отказывается работать правильно на этом конкретном месте...

if (strpos('a', 'a')) {
 continue;
}

Разве это не должно продолжаться? "a" в конце концов содержит "a", но в моем сценарии он достигает продолжения.

  • 0
    Не могли бы вы показать окружающий код так, как он делает, как и предполагалось, и не запускает «продолжить» ... поэтому нам нужно увидеть окружение.
  • 0
    Возвращает позицию , которая равна 0 = false . Просто используйте if(strpos('a', 'a') !== false)
Показать ещё 1 комментарий
Теги:
string
if-statement
strpos

1 ответ

1

Все в порядке, просто попробуйте эти коды:

<?php

$value = strpos('qa', 'a');
var_dump($value);

if($value) {
 echo "inside\n<br>";
}

Вывод:

INT (1)

внутри

<?php
$value = strpos('aq', 'a');
var_dump($value);

if($value) {
 echo "inside\n<br>";
}

Вывод:

Int (0)

Во втором коде $value оценивается как false (boolean) в typecast, потому что позиция a равна 0 и когда вы оцениваете 0 внутри if() значение присваивает false.

Вы должны использовать этот код:

if(strpos('a', 'a') === 0) {
 echo "inside\n<br>";
}

Вывод:

внутри

Вы можете узнать больше:

http://php.net/strpos

http://php.net/manual/en/language.operators.comparison.php

Ещё вопросы

Сообщество Overcoder
Наверх
Меню