У меня есть цикл php while (создание сценария поиска), и я ищу, чтобы соответствовать значениям, чтобы увидеть, какие элементы должны войти в результаты поиска. Кажется, что strpos отлично работает, пока внезапно, когда он отказывается работать правильно на этом конкретном месте...
if (strpos('a', 'a')) {
continue;
}
Разве это не должно продолжаться? "a" в конце концов содержит "a", но в моем сценарии он достигает продолжения.
Все в порядке, просто попробуйте эти коды:
<?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>";
}
Вывод:
внутри
Вы можете узнать больше:
0
=false
. Просто используйтеif(strpos('a', 'a') !== false)