Я пишу простую функцию, и по какой-то причине (возможно, простой) она не работает для меня, и мне было интересно, могли бы вы, ребята, помочь мне.
function check_value($postID) { $ID = $postID; $cookie = $_COOKIE['list_of_IDS']; $position = strpos($cookie,$ID); echo 'ID:'.$ID.'-Cookie:'.$cookie; if ($position !== false) { echo "ID is in the cookie"; } } Пытаясь выяснить, в чем проблема, я поставил эту эхо-строку выше инструкции If, чтобы убедиться, что на самом деле есть переменные.
Моя проблема заключается в том, что оператор IF никогда не распечатывается.
  A $postID – это номер 123123 . 
  Строка $cookie обычно похожа на 123123.23422.234234.2342342.234234 
Спасибо за вашу помощь!
Strpos не будет работать с int, поэтому вам нужно указать идентификатор в строку. Попробуй это:
 $ID = (string)$postID; 
  Обратите внимание, что если ваша строка cookie выглядит как 123123.23422.234234.2342342.234234 и вы ищете идентификатор, скажем, 1231 или 23 , ваша функция вернет TRUE хотя на самом деле этого ID нет в списке.  Ваша текущая реализация strpos() также будет соответствовать частичным номерам. 
Вот простой способ обхода, который потребует, чтобы ID был окружен точками.
 $position = strpos('.'.$cookie.'.', '.'.$ID.'.'); 
да, поскольку Брок сказал, что Strpos не будет работать с int, поэтому вам нужно указать id. поэтому вам нужно изменить код.
 function check_value($postID) { $ID = $postID; $cookie = $_COOKIE['list_of_IDS']; $position = strpos($cookie,$ID); echo 'ID:'.$ID.'-Cookie:'.$cookie; if ($position !== false) { echo "ID is in the cookie"; } }