|
|
|
| В теме: "STRPOS не находит первый символ"
http://softtime.ru/forum/read.php?id_forum=1&id_theme=82430
мои примеры были удалены модератором.
Логично было бы предположить что они не верны, но в чём?
Объясните пожалуйста ошибку в моё примере:
<?php
if (strpos('Автомобили и мотоциклы/Автобусы/Автобусы', 'Автомобили')>=0) echo 'Yes';
?>
|
в справочнике http://www.php.su/functions/?strpos написано:
Описание
int strpos ( string haystack, string needle [, int offset] )
Внимание
Эта функция может возвращать как логическое значение FALSE, так и не относящееся к логическому типу значение,
которое приводится к FALSE, например, 0 или "". За более подробной информации обратитесь к разделу Булев тип.
Используйте оператор === для проверки значения, возвращаемого этой функцией.
|
и я так понимаю, если функция в качестве своего положительного ответа выдаёт целое число от 0 "и более", то моя проверка верна.
к тому же на странице основного справочника:
http://www.php.net/manual/en/function.strpos.php
есть примеры которые я так понимаю верны, иначе бы не были размещены, или я неправ?
"jamie at jamiechong dot ca 19-Jan-2007 08:15"
используется условние "if ($offset>=0)"
"info at quantummechanic dot com 06-Oct-2005 12:42"
"if ($pzn>-1)"
"Suggested re-write for pink WARNING box 11-Jan-2008 11:45"
"> -1 (note: or greater than any negative number)"
решил перепроверить полученный результат, вдруг моя проверка не верно реагирует:
<?php
echo strpos('Автомобили и мотоциклы/Автобусы/Автобусы', 'Автомобили')."\n";
if (strpos('Автомобили и мотоциклы/Автобусы/Автобусы', 'Автомобили')>=0) echo "1\n";
if (strpos('Автомобили и мотоциклы/Автобусы/Автобусы', 'Автомобили')!==false) echo "2\n";
if (strpos('Автомобили и мотоциклы/Автобусы/Автобусы', 'Автомобили')>-1) echo "3\n";
?>
|
все три условия подтвердили что совпадение обнаружено, так почему же не подошло ">=0" ? | |
|
|
|
|
|
|
|
для: f111
(14.09.2011 в 15:22)
| | false в операциях сравнения с числами приводится к 0, ваша первая проверка всегда будет давать true, не зависимо от того, есть в строке такая подстрока или нет. | |
|
|
|
|
|
|
|
для: cheops
(14.09.2011 в 15:30)
| | хааа, вот теперь действительно ясна ошибка, спасибо cheops
раньше встречал условие >-1, и казалось что избавившись от "отрицательного знака", условие не нарушится.
теперь ясно где валялись грабли, ... намотаю на ус)) | |
|
|
|